2018/09/13 rope
2018-09-13 本文已影响0人
三月黄橙
2018牛客网暑期多校训练(第三场)C
#include <bits/stdc++.h>
#include <ext/rope>
using namespace std;
int main()
{
int n, k;
__gnu_cxx::rope<int> T;
scanf("%d %d", &n, &k);
for(int i = 1; i <= n; i++) T.push_back(i);
while(k--)
{
int s, m;
scanf("%d %d", &s, &m);
s --;
T = T.substr(s, m) + T.substr(0, s) + T.substr(s + m, n - s - m);
}
printf("%d", T[0]);
for(int i = 1; i < n; i++) printf(" %d", T[i]);
return 0;
}
rope
rope R;
R.push_back(x);//在末尾添加新元素x
R.insert(i,x);//在i位置插入x
R.erase(i,x);//从i位置开始删除x个
R.copy(i,len,x);//从i开始到i+len为止用x代替
R.replace(i,x);//将第i个元素替换成x
R.substr(i,x);//取出从i开始的x个元素
R.at(x);
R[x];
//访问第x个元素
rope下标从0开始