内容目录
此题纯模拟也能过……
我更懒,直接记栈尾元素和已出元素……
Program P1363; var n,i:longint; a:array[1..1000] of longint; b:array[0..1000] of boolean; t:longint; tag:boolean; begin read(n); while (n>0) do begin read(a[1]); while (a[1]>0) do begin fillchar(b,sizeof(b),false); for i:=2 to n do read(a[i]); t:=a[1]; b[t]:=true; dec(t); tag:=false; for i:=2 to n do begin if not(b[a[i]]) then begin if a[i]>t then begin t:=a[i]; b[t]:=true; dec(t); while b[t] do dec(t); end else if a[i]=t then begin b[t]:=true; dec(t); while b[t] do dec(t); end else begin writeln('No'); tag:=true; break; end; end else begin writeln('No'); tag:=true; break; end; end; if not(tag) then writeln('Yes'); read(a[1]); end; writeln; read(n); end; end.