比赛 2024暑假C班集训E 评测结果 AAAAAAAAAA
题目名称 Swapity Swapity Swap 最终得分 100
用户昵称 wdsjl 运行时间 0.170 s
代码语言 C++ 内存使用 5.47 MiB
提交时间 2024-07-14 11:10:30
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;

const int N = 1e5+10;

int n,m,k,l[N],r[N];

struct node{
    int m[N];
}a,e;

void init(){
    for(int i=1;i<=n;i++){
        a.m[i]=e.m[i]=i;
    }
    for(int i=1;i<=m;i++){
        scanf("%d%d",&l[i],&r[i]);
        reverse(e.m+l[i],e.m+r[i]+1);
    }
} 

node solve(node x,node y){
    node c;
    for(int i=1;i<=n;i++){
        c.m[i]=x.m[y.m[i]];
    }
    return c;
}

void quai(int p){
    while(p!=0){
        if(p&1)a=solve(a,e);
        p>>=1;e=solve(e,e);
    }
}

int main(){
    freopen("usaco_Feb_swap.in","r",stdin);
    freopen("usaco_Feb_swap.out","w",stdout);
    scanf("%d%d%d",&n,&m,&k);
    init();
    quai(k);
    for(int i=1;i<=n;i++)
    printf("%d\n",a.m[i]);
    return 0;
}