Programozó versenyek

Magas szintű programozási nyelvek 1, 2017. április 25., K16 ZH

2017. április 25. 16:15 – 2017. április 25. 18:00

Elég hosszú?

Adott két kancsó, egy 3 literes és egy 5 literes. Egyik kancsón sincsen mérce, így csak akkor tudjuk megmondani, hogy mennyi folyadék van bennük, ha öntögetéssel mérjük ki a pontos mennyiséget.

Írjon programot, amelynek segítségével az öntögetéseket tudja szimulálni! A programját számkódokkal tudja vezérelni. A számkódok jelentése a következő:

0 Az adatok feldolgozása ekkor ér véget.
–5 Az ötliteres kancsó tartalmát kiönti. Az ötliteres kancsóban nem marad folyadék, a háromliteres kancsó tartalma nem változik.
–3 A háromliteres kancsó tartalmát kiönti. A háromliteres kancsóban nem marad folyadék, az ötliteres kancsó tartalma nem változik.
3 Teletölti a háromliteres kancsót folyadékkal, az ötliteres kancsó tartalma nem változik.
5 Teletölti az ötliteres kancsót folyadékkal, a háromliteres kancsó tartalma nem változik.
35 A háromliteres kancsóból áttölt annyi folyadékot az ötliteres kancsóba, amennyit tud. (A háromliteres kancsóban lévő folyadék mennyiségének és az ötliteres kancsóban lévő szabad kapacitásnak a minimumát.)
53 Az ötliteres kancsóból áttölt annyi folyadékot a háromliteres kancsóba, amennyit tud. (Az ötliteres kancsóban lévő folyadék mennyiségének és a háromliteres kancsóban lévő szabad kapacitásnak a minimumát.)

A programjának az egyes parancsok végrehajtása utáni helyzetet kell a standard kimenetre írnia, soronként egy számpárt, elsőként a háromliteres, aztán az ötliteres kancsó tartalmát. A két egész számot pontosan egy szóköz karakterrel válassza el egymástól!

Kezdetben mindkét kancsó üres, ezért a kimenet első sorába a „0 0” számpárt írja!

Példa bemenet

  1. 3
  2. 35
  3. 3
  4. 35
  5. -5
  6. 35
  7. 3
  8. 35
  9. 0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

  1. 0 0
  2. 3 0
  3. 0 3
  4. 3 3
  5. 1 5
  6. 1 0
  7. 0 1
  8. 3 1
  9. 0 4
letöltés szöveges állományként
Debreceni Egyetem, Informatikai Kar, v. 2019.03.01.