Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
Re:实在无语了,怎么也找不出错了.谁找出错了,我请他吃饭(限北京市区)In Reply To:实在无语了,怎么也找不出错了.谁找出错了,我请他吃饭(限北京市区) Posted by:abcd0311 at 2009-03-26 18:31:10 > const > z: array[0..3] of char=('N','E','S','W'); > var > i, j, k, temp: longint; > n, m: longint; > a: array[-1..110,-1..110] of longint; > x, y: array[-1..110] of longint; > b: array[-1..110] of char; > lb, lc: longint; > cases, t: longint; > flag: boolean; > ch: char; > p: array['A'..'Z'] of longint; > > function work(num, t: longint): boolean; > var > i, j, k: longint; > begin > case b[num] of > 'S': begin > k := y[num]; > while t>0 do begin > dec(t); > dec(k); > if k<=0 then begin > writeln('Robot ',num,' crashes into the wall'); > exit(true); > end; > if a[x[num],k]<>0 then begin > writeln('Robot ',num,' crashes into robot ',a[x[num],k]); > exit(true); > end; > end; > a[x[num],y[num]] := 0; > y[num] := k; > a[x[num],y[num]] := num; > end; > 'E': begin > k := x[num]; > while t>0 do begin > dec(t); > inc(k); > if k>lb then begin > writeln('Robot ',num,' crashes into the wall'); > exit(true); > end; > if a[k,y[num]]<>0 then begin > writeln('Robot ',num,' crashes into robot ',a[k,y[num]]); > exit(true); > end; > end; > a[x[num],y[num]] := 0; > x[num] := k; > a[x[num],y[num]] := num; > end; > 'N': begin > k := y[num]; > while t>0 do begin > dec(t); > inc(k); > if k>lc then begin > writeln('Robot ',num,' crashes into the wall'); > exit(true); > end; > if a[x[num],k]<>0 then begin > writeln('Robot ',num,' crashes into robot ',a[x[num],k]); > exit(true); > end; > end; > a[x[num],y[num]] := 0; > y[num] := k; > a[x[num],y[num]] := num; > end; > 'W': begin > k := x[num]; > while t>0 do begin > dec(t); > dec(k); > if k<=0 then begin > writeln('Robot ',num,' crashes into the wall'); > exit(true); > end; > if a[k,y[num]]<>0 then begin > writeln('Robot ',num,' crashes into robot ',a[k,y[num]]); > exit(true); > end; > end; > a[x[num],y[num]] := 0; > x[num] := k; > a[x[num],y[num]] := num; > end; > end; > exit(false); > end; > > > begin > assign(input,'d:/1.txt'); > reset(input); > assign(output,'d:/2.txt'); > rewrite(output); > > p['N'] := 0; > p['E'] := 1; > p['S'] := 2; > p['W'] := 3; > > > readln(cases); > for t := 1 to cases do begin > fillchar(a,sizeof(a),0); > readln(lb,lc); > readln(n, m); > for i := 1 to n do begin > readln(x[i],y[i],ch,b[i]); > a[x[i],y[i]] := i; > end; > flag := true; > for i := 1 to m do begin > readln(k,ch,ch,j); > case ch of > 'L': begin > j := j mod 4; > temp := p[b[k]]; > temp := (temp+4-j) mod 4; > b[k] := z[temp]; > end; > 'R': begin > j := j mod 4; > temp := (temp+j) mod 4; > b[k] := z[temp]; > end; > 'F': if work(k,j) then begin > flag := false; > break; > end; > end; > end; > for j := i+1 to m do readln; > if flag then writeln('OK'); > end; > > close(input); > close(output); > end. Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator