Adding some more judges, here and there.
[andmenj-acm.git] / NEERC / business / business_rs.dpr
blob2decbb107e9157e06564705f38d34be76daab2d4
1 {$r+,q+,o-}\r
2 {$apptype console}\r
3 uses\r
4     SysUtils, Math;\r
5 \r
6 type\r
7     int = longint;\r
8 \r
9 procedure check(expr: boolean; msg: string);\r
10 begin\r
11     if (not expr) then begin\r
12         writeln(erroutput, 'Error: ', msg);\r
13         assert(false);\r
14     end;\r
15 end;\r
17 procedure checkBounds(n: int; low: int; hi: int; varName: string);\r
18 begin\r
19     check((low <= n) and (n <= hi), varName + ' is out of bounds [' + inttostr(low) + ', ' + inttostr(hi) + ']');\r
20 end;\r
22 var\r
23     n, m, u, d, i: int;\r
24     a, b, f, answer: int;\r
26 begin\r
27     reset(input, 'business.in');\r
28     rewrite(output, 'business.out');\r
30     read(n, m);\r
31     checkBounds(n, 1, 1000000, 'n');\r
32     checkBounds(m, 1, 2000, 'm');\r
33     answer := 2000000000;\r
34     for i := 1 to m do begin\r
35         read(u, d);\r
36         checkBounds(u, 1, 1000, 'u');\r
37         checkBounds(d, 1, 1000, 'd');\r
38         a := (n * d) div (u + d) + 1;\r
39         b := n - a;\r
40         f := a * u - b * d;\r
41         answer := min(answer, f);\r
42     end;\r
43     writeln(answer);\r
45     close(input);\r
46     close(output);\r
47 end.\r