Laiko ribojimas: 0.2s

Atminties ribojimas: 32MB

Jei norite pateikti savo sprendimą - prisijunkite.

Paprasta programavimo kalba

Mokytojas jaunajam Jonukui uždavė tokį uždavinį - reikia parašyti pilnai funkcionuojančią programavimo kalbą, kuri būtų neblogesnė už C++. Kadangi Jonas nenorėjo perdaug vargti prie savo kalbos, jis sugalvojo daug supaprastinimų:

  1. jo kalba palaikys tik du tris skaičius 0, 1, 2. Kitus bus galima rasti iš jų (pvz.: 5=0+1+1+1+1+1, 0.25=1/2/2);
  2. visos daugiamačių masyvų dimensijos bus lygios, t.y. jo kalboje bus galima turėti masyvus a[5], a[2][2], bet ne a[1][2];
  3. masyvo indeksais galės būti tik 0 arba koks nors kitas masyvo elementas;
  4. objektinis programavimas bus realizuotas funkcijoms perdavinėjant objekto būseną kaip pirmą funkcijos parametrą.

Nors mokytojui ir nepatiko šios idėjos, jam teko pripažinti, kad visos, išskyrus trečiąją, yra teisingos. Kadangi dėl trečiosios sąlygos kurta kalba nebus ekvivalenti C++, mokytojas norėtų parašyti Jonukui 9. Turbūt nereikia sakyti, bet Jonui tas tikrai nepatinka - padėkite Jonui įrodyti, kad mokytojas klysta.

Jums bus pateiktas dvimatis masyvas a, jame reikės rasti būdą kaip pasiekti kažkokį konkretų skaičių pasinaudojus aukščiau aprašytomis taisyklėmis (validūs būdai pasiekti elementą: a[0,0], a[a[0,0],0], a[a[a[0,a[0,0]],0],a[0,0]]; blogi būdai: a[0], a[0+1,a[0,0]], a[2,b[0,0]]).

Pradiniai duomenys

Sveikasis skaičius 1\\leqN\\leq25, nurodantis masyvo stulpelių ir eilučių kiekį - šio skaičiaus taip pat reikės ieškoti pačiame masyve. Kiekvienoje iš likusių N eilučių bus pateikta N skaičių, kurie nurodys masyvo elementus (masyvas indeksuojamas nuo nulio).

Rezultatai

Trumpiausias būdas (skaičiuojant simbolių kiekį), kuriuo pasinaudojus galima pasiekti elementą N arba žodis IMPOSSIBLE, jei ieškomo skaičiaus rasti masyve a negalima.

Pavyzdžiai

Pradiniai duomenys Rezultatai
2
1 1
1 2
a[a[0,0],a[0,0]]