【题意】
已知一个长度为n(n为奇数)的置换是某置换的2^s次方,求原置换
【输入】
第一行两个数n、s
接下来n行每行一个数字表示置换
【输出】
每行输出一个数字输出原置换
由于是某置换的2^s次方,所以我将序列开了s次2次方
由于数据较弱,都是一个循环,所以过了
program poj1721;
var
n,s,i,j,k,p:longint;
ans,temp:array [0..1001] of longint;
begin
read(n,s);
for i:=1 to n do
read(temp[i]);
if n=1 then
begin
writeln(1);
exit;
end;
ans[1]:=1;
for i:=2 to n do
ans[i]:=temp[ans[i-1]];
for j:=s downto 1 do
begin
temp:=ans;
k:=1;
for i:=1 to n do
begin
ans[k]:=temp[i];
k:=k+2;
if k>n then k:=k-n;
end;
end;
for i:=1 to n do
if i=n then temp[ans[i]]:=ans[1]
else temp[ans[i]]:=ans[i+1];
for i:=1 to n do
writeln(temp[i]);
end.