AcWing 3243. 学生排队
原题链接
简单
作者:
把这题Ac了
,
2024-12-01 13:12:25
,
所有人可见
,
阅读 1
#include <iostream>
using namespace std;
const int N = 1010;
int q[N];
int n,m;
void go_back(int idx,int val,int stp){
for(int i = idx;i < idx + stp;i++)
q[i] = q[i + 1];
q[idx + stp] = val;
}
void go_forth(int idx,int val,int stp){
for(int i = idx - 1;i >= idx - stp;i--)
q[i + 1] = q[i];
q[idx - stp] = val;
}
int find_x(int val){
for(int i = 1;i <= n;i++)
if(q[i] == val)
return i;
return -1;
}
int main(){
cin >> n >> m;
for(int i = 1;i <= n;i++) q[i] = i;
while(m--){
int val,stp;
cin >> val >> stp;
int idx = find_x(val);
if(stp >= 0)
go_back(idx,val,stp);
else
go_forth(idx,val,-stp);
}
for(int i = 1;i <= n;i++)
cout << q[i] << ' ';
cout << endl;
return 0;
}