pku1721cards

来源:互联网 发布:土木工程要学c语言 编辑:程序博客网 时间:2024/06/05 15:11
//置换差不多搞懂了,就是换来换去的,可惜又看了别人的程序了…………
#include<stdio.h>#include<string.h>int a[1005],cont,b[1005],c[1005],n,x;void solve(){    int i;    while(1){        for(i=1;i<=n;i++){            b[i]=c[c[i]];        }       cont++;       for(i=1;i<=n;i++){            if(b[i]!=a[i])                break;       }       if(i>n) break;       for(i=1;i<=n;i++){            c[i]=b[i];       }    }    return;}int main(){    int i,t,temp,s;    while(scanf("%d%d",&n,&s)!=EOF){        for(i=1;i<=n;i++){            scanf("%d",&a[i]);            c[i]=a[i];        }        cont=0;        solve();        temp=s%cont;        temp=cont-temp;        int q=0;        while(q<temp){            for(i=1;i<=n;i++){                c[i]=a[a[i]];            }            for(i=1;i<=n;i++){                a[i]=c[i];            }            q++;        }        for(i=1;i<=n;i++){            printf("%d\n",a[i]);        }    }    return 0;}

原创粉丝点击