标签:poj
#include <cstdio>
#include <cstring>
#include <iostream>
#include <algorithm>
#define N 210
using namespace std;
int n,k;
int a[N];
int b[N][N];
int v[N];
char tmp[N];
char print[N];
int tot;
int lenth;
void getn()
{
memset(v,0,sizeof(v));
for(int i=1;i<=n;i++)
{
int pt=i;
if(!v[pt])tot++;
int cnt=0;
while(!v[pt])
{
v[pt]=1;
b[tot][++cnt]=a[pt];
pt=a[pt];
}
if(cnt!=0)b[tot][0]=cnt;
}
}
int main()
{
while(~scanf("%d",&n))
{
if(n==0)break;
for(int i=1;i<=n;i++)scanf("%d",&a[i]);
tot=0;
getn();
while(~scanf("%d",&k))
{
if(k==0){printf("\n");break;}
char useless;
scanf("%c",&useless);
gets(tmp);
int len=strlen(tmp);
while(len<n)tmp[len++]=‘ ‘;
tmp[len]=‘\0‘;
for(int i=1;i<=tot;i++)
{
for(int j=1;j<=b[i][0];j++)
{
int tmp2=(j+k)%b[i][0];
if(!tmp2)tmp2=b[i][0];
print[b[i][tmp2]-1]=tmp[b[i][j]-1];
}
}
for(int i=0;i<n;i++)
{
printf("%c",print[i]);
}
printf("\n");
}
}
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
标签:poj
原文地址:http://blog.csdn.net/wzq_qwq/article/details/47333609