桌面上有一疊牌,從第一張牌(即位於頂面的牌)開始從上往下依次編號爲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.