| ||||||||||
| Online Judge | Problem Set | Authors | Online Contests | User | ||||||
|---|---|---|---|---|---|---|---|---|---|---|
| Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest | |||||||||
这两个几乎一样的程序有什么错误啊{
PKU 1026
Author : Yizer
State : AC
}
Program pku1026;
Var
n,k,j,i:longint;
a,up:array[0..200]of longint;
loop:array[0..200,0..200]of longint;
s,ans:string;
BEGIN
while true do
begin
readln(n);
if n=0 then
break;
fillchar(a,sizeof(a),0);
for i:=1 to n do
read(a[i]);
readln;
fillchar(loop,sizeof(loop),0);
for i:=1 to n do
loop[i,0]:=i;
for i:=1 to n do
for j:=1 to n do
Begin
loop[i,j]:=a[loop[i,j-1]];
if loop[i,j]=loop[i,0] then
begin
up[i]:=j;
break;
end;
End;
while true do
begin
read(k);
if k=0 then
Begin
readln;
break;
End;
readln(s);
delete(s,1,1);
while length(s)<n do
s:=s+' ';
ans:=s;
for i:=1 to n do
ans[loop[i,k mod up[i]]]:=s[i];
writeln(ans);
End;
writeln;
End;
END.
/*
PKU 1026
Author : Yizer
State : WA
*/
#include <iostream>
using namespace std;
int main()
{
freopen("data.in","r",stdin);
char line[256];
int n;
while (gets(line),sscanf(line,"%d",&n),n)
{
int a[201] = {0};
for (int i=1;i<=n;i++)
scanf("%d",a+i);
getchar();
int loop[201][201] = {0};
int up[201] = {0};
for (int i=1;i<=n;i++)
loop[i][0] = i;
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
{
loop[i][j] = a[loop[i][j-1]];
if (loop[i][j]==loop[i][0])
{
up[i] = j;
break;
}
}
while (gets(line),strcmp(line,"0"))
{
int k;
char str[256],ans[256];
sscanf(line,"%d %[^\n]\n",&k,str);
int len = strlen(str);
while (len<n)
str[len++] = ' ';
str[len] = '\0';
strcpy(ans,str);
for (int i=1;i<=n;i++)
ans[loop[i][k%up[i]]-1] = str[i-1];
puts(ans);
}
puts("");
}
return 0;
}
哪里错了呢。。谁帮着看看
Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator