var d, v, Q, dostavljeno, cisterna : longint; ulaz,
izlaz : Text; begin
Assign(ulaz, ‘reka.in’); Assign(izlaz, ‘reka.out’);
Reset(ulaz); Rewrite(izlaz); Read(ulaz,
v, d);
dostavljeno := 0; if (d <
500) then {ima smisla vracati se} begin Q := Q
div 1000; {broj mogucih punjenja cisterne do vrha} if (Q
> 0) then begin Q
:= Q – 1; {pitanje je da li se poslednji put treba vracati} v
:= v – 1000 * Q;
dostavljeno := Q * (1000 – 2 * d); end; end; if (d <
v) and (d < 1000) then {ima dovoljno za zadnji prevoz} begin cisterna := 1000; if
(cisterna > v) then cisterna := v; v := v
– cisterna;
cisterna := cisterna – d; {stigla u B}
dostavljeno := dostavljeno + cisterna; if
(cisterna > d) and (v > 2*d) then {ima da se vrati i isplati se} begin
dostavljeno := dostavljeno + v – 2 * d; v
:= 0; end; end;
WriteLn(izlaz,dostavljenjo,’ ‘,v);
Close(ulaz); Close(izlaz); end. |
Test primeri |
|
Ulaz ( v, d) |
Izlaz (dostavljeno,
ostalo) |
10000000 1001 |
0 10000000 |
50 100 |
0 50 |
10000000 1000 |
0 10000000 |
100 100 |
0 100 |
10000000 600 |
400 9999000 |
150 100 |
50 0 |
12345 500 |
500 11345 |
200 100 |
100 0 |
250 100 |
150 0 |
3050 100 |
2500 50 |
3100 100 |
2500 100 |
3150 100 |
2500 150 |
3200 100 |
2500 200 |
3250 100 |
2550 0 |
2000000000 1 |
1966000001 0 |