1950842_ac_109ms_60k.cpp
来自「北大大牛代码 1240道题的原代码 超级权威」· C++ 代码 · 共 52 行
CPP
52 行
# include <stdio.h>
# include <string.h>
int main()
{
int n, i, k, m, j, len;
int a[300], t[300], tmp;
char code[300], encode[300];
while(scanf("%d",&n)==1&&n)
{
for(i = 0; i < n; i++)
scanf("%d",&a[i]);
for(i = 0; i < n; i++)
{
tmp = a[i];
m = 0;
while(tmp!=i+1)
{
tmp = a[tmp-1];
m++;
}
t[i] = m;
}
while(scanf("%d",&k)==1&&k)
{
getchar();
gets(code);
len = strlen(code);
for(; len < n; len++)
code[len] = ' ';
code[n] = '\0';
for(i = 0; i < n; i++)
{
j = i;
tmp = k%(t[i]+1);
if(tmp == 0) {encode[i] = code[i];continue;}
while(tmp--)
{
m = a[j];
j = m - 1;
}
encode[j] = code[i];
}
encode[n] = '\0';
printf("%s\n",encode);
}
printf("\n");
}
return 1;
}
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?