.campion
conectare | înregistrare | căutare
Pagina principală » Probleme » arthur

ultima problemă
grupă: mică
sursă: OMI 2016
ultimul articol
autor: Prof. Radu Vişinescu
ultimul software
autor: Prof. Emanuela Cerchez
.campion
arthur


Timp maxim de executie/test:
1.4 secunde
Memorie totala disponibila/stiva:
16 MB/1 MB

Regele Arthur, singurul supravietuitor al unei sangeroase batalii, a ramas ranit pe campul de lupta. Singura lui salvare ar fi sa ajunga la castel, unde va fi in siguranta. Arthur nu are la dispozitie nici un cal pentru a se deplasa mai usor, insa pe drumul spre castel poate trece pe la mai multe hanuri, de unde poate imprumuta cate un cal. Asadar pleaca pe jos spre castel. Ajuns la un han, Arthur isi potoleste setea, dar nu mai pierde vremea si pleaca mai departe. El poate decide daca va pleca calare sau pe jos. Arthur stie insa ca un cal nu poate parcurge mai mult de K pasi. Daca distanta de la hanul curent pana la castel sau pana la urmatorul han este mai mare de K pasi, atunci este obligat sa plece pe jos, deoarece nu poate sa abandoneze calul pe drum. Chiar daca pana la urmatorul han Arthur poate ajunge calare (mai putin de K pasi de cal), el poate decide sa plece pe jos. In acest caz va parcurge toata distanta pana la hanul urmator sau pana la castel pe jos.

Harta regatului lui Arthur poate fi reprezentata sub forma unei table dreptunghiulare cu m linii numerotate de la 1 la m de sus in jos, si n coloane numerotate de la 1 la n de la stanga la dreapta. La un pas, Arthur se poate deplasa pe jos, din pozitia marcata cu , in oricare din cele 8 pozitii marcate cu , conform figurii 1 de mai jos, astfel incat sa ramana pe tabla. Calare insa, Arthur se poate deplasa, din pozitia marcata cu , in oricare din cele 8 pozitii marcate cu , conform figurii 2 de mai jos, astfel incat sa ramana pe tabla.

Cerinta

Fiind data o "harta" a regatului se cere sa se determine numarul minim de pasi pe care ii face Arthur (pe jos sau calare) pentru a ajunge la castel, precum si un traseu parcurs de Arthur pentru a obtine acest numar minim de mutari.

Date de intrare

Pe prima linie a fisierului de intrare arthur.in se gasesc numerele intregi m, n, k si p, separate prin cate un spatiu, cu urmatoarea semnificatie: m numarul de linii ale hartii, n numarul de coloane ale hartii, k numarul maxim de pasi pe care ii poate face un cal, iar p numarul de hanuri de pe harta. Linia a doua a fisierului contine doua numere naturale, separate printr-un spatiu, reprezentand linia si coloana pozitiei initiale a lui Arthur pe harta. Linia a treia a fisierului de intrare contine doua numere naturale, separate printr-un spatiu, reprezentand coordonatele (linia si coloana) castelului pe harta. Urmatoarele p linii contin cate doua numere naturale, separate printr-un spatiu, reprezentand coordonatele (linia si coloana) cate unui han pe harta.

Date de iesire

Fisierul arthur.out va contine pe prima linie numarul natural min reprezentand numarul minim de pasi prin care Arthur ajunge la castel. Pe urmatoarele min+1 linii sunt afisate in ordine pozitiile prin care trece Arthur pe drumul optim. Pentru fiecare pozitie se afiseaza pe o linie separata, indicele de linie si indicele de coloana, separate printr-un spatiu.

Restrictii si precizari

  • 1 < m, n <= 200
  • 0 <= k <= 1000
  • 0 <= p <= 100
  • Daca pentru datele de intrare exista mai multe trasee optime, poate fi afisat oricare dintre acestea.

Exemplu

arthur.in

arthur.out

12 16 3 4
2 2
11 15
6 4
3 8
7 10
5 14

10
2 2
3 1
4 2
5 3
6 4
5 6
6 8
7 10
8 12
9 14
11 15

 

prof. Carmen Popescu
Colegiul National "Gheorghe Lazar" Sibiu
Contact: popescu.carmen@yahoo.com

 

 

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2006: scara, programs, nr, iepuras2, numere3, robot2, fry, suma, sah, formule, perm, cifra, repeat, ture, xor, policefm, unu, criptare, ed, bilete, vector, scor, ratb, infinit, race, dragon, kreg, placi, hanoig, red, 2sec, flood, sume3, balls, festival, croco, johnie, matrice3, pavaj, sume, kimberley, kafka, vocale, pento, prop, ro, sol, bacan, erdos, poligon, reduceri, druid, novel, gramezi, nrbinar, laser, spair, caravane, cuburi, grup, invest, cd, friends2, mese, toys
De acelaşi autor: light, sort, iepuras, pahare, turist, pento, cod2, game, ambigram, jokes, trecere, paianjen, zumzi, cifru3, pamant, pixy, triburi, culori1, cifre5, arc
Despre graf: gropi, tgv, matrice2, miniasm, picnic, mere, circuit, soldati, arce, conflicte, desen, robot, furtuna, net, cuvinte, excursie, cadere, pioni, reinvent, kreg, flood, croco, johnie, matrice, kimberley, ro, sol, caravane, bete, honest, police, pcod, zmeu, auto2, grazing, datorii, trafic, sponsori, monede1, apm, bile1, caini, masina1, bomboane, turn1, shgraf, paintball, program1, tgraf, kgb, algola, felinar, joc6, tric, homeless, promo, turism, casute, joc10, prieteni1, traseu, zapezi, litoral, lover, trip, garaj, ziduri, tv, pact, echipe1, vitale, spion, trasee, bcolor, scara2, lant, ab3, soc, team, gard, rsp, graf, mexc, dep, albinuta1, atac2, cabane, drumuri, tj, grade, jungla, lanterna, magic5, coment, urgenta, fazan, lanturi, cfr, site, traseu1, trmv, graphgame, minuni, telefon, ubergraf, carray, pestera, chei, arbgraf, war, fluviu, drumuri1, entries, ubuntzei, pack, fotbal1, pamant, dag, razboi, benzina2, wg, neconex, asfalt1, kubus2, module, progresii, dfs, prieteni3, megascoala, grafxy, dineu, vot1, biperm, drumuri2, nrgraf, cristal, cartite, copaci3, dragoni, nuclee
Despre drum minim: miniasm, robot, furtuna, excursie, bete, zmeu, trafic, masina1, bomboane, traseu, litoral, lover, trip, scara2, team, gard, pitici1, base3, coach, lanturi, trmv, pestera, fluviu, ubuntzei, razboi, benzina2, kubus2, megascoala, dragoni
surse trimise | ajutor