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