poj1721 CARDS
#include<stdio.h>
#include<string.h>
#include<stdlib.h>
int p[1020][1020];
int k;
int n,s;
bool charge()
{
int i;
for(i=1;i<=n;i++)
{
if(p[0][i]!=p[k-1][i])
{
return true;
}
}
return false;
}
int main()
{
scanf("%d %d",&n,&s);
int i,j;
for(i=1;i<=n;i++)
{
scanf("%d",&p[0][i]);
}
k=1;
while(charge()||k==1)
{
for(i=1;i<=n;i++)
{
p[k][i]=p[k-1][p[k-1][i]];
}
k++;
}
k=k-2;//p[0],,,p[k]
int qi=0;
while(s--)
{
qi--;
if(qi<0)
{
qi=k;
}
}
for(i=1;i<=n;i++)
{
printf("%d\n",p[qi][i]);
}
system("PAUSE");
return 0;
}