2 条题解

  • 0
    @ 2024-12-12 23:15:48
    #include<iostream>
    #include<vector>
    using namespace std;
    typedef long long ll;
    const int N = 1e7 + 10;
    int n, q;
    vector<ll>a(N);
    void roll(vector<ll>& a, int l, int r)
    {
        for (int i = l, j = r; i <j; i++, j--)
        {
           swap(a[i],a[j]);
        }
    }
    int main()
    {
        scanf("%d%d",&n,&q);
        for (int i = 0; i < n; i++)
        {
            scanf("%lld",&a[i]);
        }
        while (q--)
        {
            int op;
            scanf("%d",&op);
            if (op == 1)
            {
                int l, r, k;
                scanf("%d%d%d",&l,&r,&k);
                l--, r--;
                int len = r - l + 1;
                k %= len;
                roll(a, l, r), roll(a, l, l + k - 1), roll(a, l + k, r);
            }
            else
            {
                int x;
                scanf("%d",&x);
                printf("%lld\n",a[x-1]);
            }
        }
        return 0;
    }
    

    信息

    ID
    1083
    时间
    1500ms
    内存
    256MiB
    难度
    9
    标签
    递交数
    86
    已通过
    6
    上传者