兄弟你这一行代码也是真的秀。
#include <bits/stdc++.h> 
#include <ext/rope>//函数头文件 

using namespace __gnu_cxx; 
using namespace std; 

const int maxn=1e5+10; 

rope<int> T; 

int n,m; 

int main() { 
    scanf("%d%d",&n,&m); 
    for (int i=1; i<=n; i++) T.push_back(i); 
    while (m--) { 
        int p,s; 
        scanf("%d%d",&p,&s); 
        p--; 
        T=T.substr(p,s) + T.substr(0,p) + T.substr(p+s,n-p-s); //洗牌后的顺序 中间 +前部 +后面 
    } 
    for (int i=0; i<n; i++) printf("%d ",T[i]); 
    return 0; 
}