Отримання знань
дистанційна підтримка освіти школярів
Шифр
Входные данные
Выходные данные
Пример входных данных
Пример выходных данных
Анализ условия и обсуждение идеи решения
Пример решения на С++:
#include < stdio.h >
#include < string.h >
char ss[2][210];
int code[210];
int change[210];
int n;
int time;
int main()
{
int i,j,k,l;
scanf("%d",&n);
while (n)
{
for (i = 0; i < n; i++)
{
scanf("%d",&code[i]);
code[i]--;
}
memset(change,0,sizeof(change));
for (i = 0; i < n; i++)
{
j = i; k = 0;
do
{
j = code[j];
k++;
} while (j != i);
change[i] = k;
}
scanf("%d",&time);
while (time)
{
getchar();
memset(ss,0,sizeof(ss));
gets(ss[0]);
j = strlen(ss[0]);l=0;
while (ss[0][j-1] == ' ' || ss[0][j-1] == '\n')
{
j--;
ss[0][j] = '\0';
if (j == 0) break;
}
while (j < n)
{
ss[0][j] = ' ';
ss[0][++j] = '\0';
}
for (i = 0; i < n; i++)
{
l = time % change[i];
j = i;
for ( k = 1; k <= l; k++)
j = code[j];
ss[1][j] = ss[0][i];
}
printf("%s\n",ss[1]);
scanf("%d",&time);
}
printf("\n");
scanf("%d",&n);
}
return 0;
}
Попередня | Зміст | Наступна |
В системі:
гості - (1); користувачі -
(0)