Programozó versenyek

Magas szintű programozási nyelvek 1, egyéni verseny, 2012. április 22.

2012. április 22. 10:15 – 2012. április 22. 15:15

Hangya a sakktáblán

Egy szép napon Hanna, a hangya egy M×M-es sakktáblához ért. Be akarta járni a tábla összes mezőjét, így elkezdett a következőképpen haladni rajta (feltételezhetjük, hogy a sebessége 1 mező másodpercenként):

Az első másodpercben Hanna az (1,1) mezőn állt. Először egy mezőt felfelé haladt, majd egy mezőt jobbra, majd egy mezőt lefelé. Ezután egy mezőt lépett jobbra, két mezőt felfelé, majd két mezőt balra… Egyszóval a bejárt útja egy kígyóra hasonlított.

Például az első 25 másodperce a következőképpen alakult (az egyes mezőkben szereplő számok azt az időpontot jelölik, amikor belépett az adott mezőbe):

A 8-adik másodpercben a (2,3) mezőn, a 20-adikban az (5,4) mezőn volt éppen.

A feladatod, hogy meghatározd, hol volt Hanna egy adott időpontban (feltételezhetjük, hogy M elég nagy).

A bemenet specifikációja

A bemenet több sorból áll, és minden sor egy N számot tartalmaz (1 ≤ N ≤ 2⋅109), amely egy időpontot jelöl. A bemenet végét egy 0-t tartalmazó sor jelzi.

A kimenet specifikációja

Minden tesztesetre egy olyan sort kell a kimenetre írni, amely két számot (x-et és y-t) tartalmaz egyetlen szóközzel elválasztva, mégpedig annak a mezőnek az oszlopindexét és sorindexét, amelyiken Hanna áll az N-edik másodpercben.

Példa bemenet

  1. 8
  2. 20
  3. 25
  4. 0
letöltés szöveges állományként

A példa bemenethez tartozó kimenet

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