题目描述 Description
桌面上有一叠牌,从第一张牌(即位于顶面的牌)开始从上往下依次编号为1~n.当至少还剩两张排时进行一下操作:把第一张牌扔掉,然后把新的第一张牌放到整叠牌的最后。输入n。输出每次扔掉的牌,以及最后剩下的牌。。
说是费用流的题目,但是直接用数组暴力模拟就过了。。。
代码:
var
t,n:longint;
a:array[1..100000]of longint;
i:longint;
begin
read(n);
for i:=1 to n do
a[i]:=i;
while n>=2 do
begin
write(a[1]);
t:=a[2];
for i:=3 to n do
a[i-2]:=a[i];
a[n-1]:=t;
dec(n);
end;
write(a[1],' ');
end.