|
|
вернуться в форумCould you tell me why i got Wrong. Послано Cancer 20 ноя 2002 23:21 Const Maxa=1000; Maxn=100000; Var ch:char; From:array[0..Maxn div 2] of longint; a:array[1..Maxa] of longint; num:array[1..Maxn] of longint; i,x,p,q,n,y,t,j:longint; Procedure Push; Begin inc(p); num[p]:=y; t:=p div 2; if odd(p) then from[t]:=from[t]+a[x] else from[t]:=from[t]+a[x]*Maxn; a[x]:=p; ENd; Procedure POP; Begin writeln(num[a[x]]); t:=a[x] div 2; if odd(a[x]) then begin a[x]:=from[t] mod Maxn; end else begin a[x]:=from[t] div Maxn; end; End; Begin readln(n); fillchar(a,sizeof(a),0); fillchar(num,sizeof(num),0); p:=0; q:=0; repeat inc(q); while not(ch in ['U','O'] )do read(ch); if ch='U' then begin read(ch); read(ch); read(x,y); PUSH; end else if ch='O' then begin read(ch); read(x); POP; end; readln;
until q=n; End. |
|
|