1 条题解

  • 0
    @ 2025-10-8 16:54:21
    #include <bits/stdc++.h>
    using namespace std;
    bool v[1100];
    int main()
    {
        int n;
        scanf("%d", &n);
        memset(v, 0, sizeof(v));
        
        int t = n, d = 0;
        while (t >= 3)
        {
            int mi = 0;
            if (d == 0)
            {
                for (int i = 1; i <= n; i++)
                {
                    if (v[i] == 0)
                    {
                        mi++;
                        if (mi == 3)
                            mi = 0, v[i] = 1, t--;
                    }
                }
            }
            else
            {
                for (int i = n; i >= 1; i--)
                {
                    if (v[i] == 0)
                    {
                        mi++;
                        if (mi == 3)
                            mi = 0, v[i] = 1, t--;
                    }
                }
            }
            d = 1 - d;
        }
        if (d == 0)
        {
            for (int i = 1; i <= n; i++)
                if (v[i] == 0)
                {
                    printf("%d\n", i);
                    return 0;
                }
        }
        else
        {
            for (int i = n; i >= 1; i--)
                if (v[i] == 0)
                {
                    printf("%d\n", i);
                    return 0;
                }
        }
        return 0;
    }
    
    • 1

    信息

    ID
    851
    时间
    1000ms
    内存
    128MiB
    难度
    5
    标签
    递交数
    262
    已通过
    102
    上传者