比赛 |
2024暑假C班集训E |
评测结果 |
AAAAAAAAAA |
题目名称 |
Swapity Swapity Swap |
最终得分 |
100 |
用户昵称 |
健康铀 |
运行时间 |
1.135 s |
代码语言 |
C++ |
内存使用 |
8.66 MiB |
提交时间 |
2024-07-14 10:53:10 |
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
int f[35][100003],n,m,k,l,r,a[1000005],b[1000005],c[1000005];
int zhao(int i){
int ans=k,sum=i;
for(int j=30;j>=0;j--){
if(ans>=(1<<j)){
ans-=(1<<j);
sum=f[j][sum];
}
}
return sum;
}
int main(){
freopen("usaco_Feb_swap.in","r",stdin);
freopen("usaco_Feb_swap.out","w",stdout);
ios::sync_with_stdio(false);
cin.tie(0);cout.tie(0);
cin>>n>>m>>k;
for(int i=1;i<=n;i++)
c[i]=i;
for(int i=1;i<=m;i++){
cin>>a[i]>>b[i];
l=a[i],r=b[i];
while(l<r){
swap(c[l],c[r]);
l++;
r--;
}
}
for(int i=1;i<=n;i++){
f[0][i]=c[i];
}
for(int i=1;i<=30;i++){
for(int j=1;j<=n;j++){
f[i][j]=f[i-1][f[i-1][j]];
}
}
for(int i=1;i<=n;i++){
cout<<zhao(i)<<endl;
}
return 0;
}