Adding some more judges, here and there.
[and.git] / NEERC / business / business_rs_wa.dpr
blob922a4960e217a0f76751650d79873e5ccc7d3453
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, 100, '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 + u + d - 1) div (u + d);\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