Adding some more judges, here and there.
[and.git] / NEERC / garbling / check.dpr
blob71fa803429c09a586cbf6d5956e7b161f0e11302
1 (*\r
2     Checker for NEERC'2009 Problem G: Garbling Game\r
3     (C) Roman Elizarov\r
4 *)\r
5 \r
6 {$O+,Q+,R+}\r
7 {$APPTYPE CONSOLE}\r
8 \r
9 program Check;\r
11 uses\r
12   TestLib, SysUtils;\r
14 type \r
15   Output = array of integer;\r
17 function NextOutput(var strm: InStream): Output;\r
18 begin\r
19   SetLength(Result, 0);\r
20   while not strm.SeekEof do begin\r
21     SetLength(Result, Length(Result) + 1);\r
22     Result[Length(Result) - 1] := strm.ReadInteger();\r
23   end;\r
24 end;\r
26 var\r
27   ja, pa: Output;\r
28   i: Integer;\r
30 begin \r
31   ja := NextOutput(ans);\r
32   pa := NextOutput(ouf);\r
34   if not ouf.SeekEof then\r
35     Quit(_PE, 'Extra data in output');\r
37   if Length(pa) <> Length(ja) then\r
38     Quit(_WA, Format('%d numbers instead of %d', [Length(pa), Length(ja)]));\r
40   for i := 1 to Length(pa) do\r
41     if pa[i - 1] <> ja[i - 1] then\r
42       Quit(_WA, Format('%d instead of %d on line %d', [pa[i - 1], ja[i - 1], i]));\r
44   Quit(_OK, Format('%d numbers', [Length(pa)]));\r
45 end.\r