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

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


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

Un garaj subteran are N locuri de parcare, plasate pe diferite niveluri. Locurile de parcare sunt numerotate distinct de la 1 la N. Locul de parcare numarul 1 este intrarea/iesirea din garaj, se afla la nivelul cel mai inalt al garajului si aici nu este parcata nici o masina.
Un loc de parcare este practic o camera in care incape o singura masina si care poate comunica prin coridoare cu alte locuri de parcare, astfel incat exista un singur drum de la un loc de parcare la altul. Un drum de la un loc de parcare catre iesire consta dintr-o succesiune de camere, astfel incat intre oricare doua camere consecutive exista coridor de trecere, iar camerele sunt plasate pe niveluri consecutive in garaj. Evident, o masina nu poate trece printr-o camera daca in acea camera este parcata o alta masina.
Ion si-a parcat masina in locul de parcare numarul P si acum ar vrea sa plece. Problema este ca exista si alte masini parcate in drumul sau catre iesire. Pentru a-si elibera drumul va trebui sa mute fiecare masina care il incurca intr-un alt loc de parcare, plasat la un nivel inferior celui in care se afla masina respectiva.
O mutare consta in impingerea unei masini intr-o camera de pe nivelul imediat inferior.

Cerinta

Scrieti un program care sa determine numarul minim de mutari pe care trebuie sa le faca Ion pentru a putea parasi garajul.

Date de intrare

Fisierul de intrare garaj.in contine pe prima linie 3 numere naturale N P K separate prin spatii reprezentand numarul de locuri de parcare, locul in care este parcata masina lui Ion, precum si numarul de locuri de parcare ocupate de alte masini (altele decat masina lui Ion).
Fiecare dintre urmatoarele N linii contine informatii despre locurile de parcare. Mai exact pe linia (i+1) se afla numerele celor T locuri de parcare conectate prin coridoare de locul de parcare i, situate pe nivelul imediat inferior nivelului pe care se afla locul i, sub forma:
T A1 A2 ... AT
Ultima linie a fisierului de intrare contine K numere naturale, separate prin spatii, reprezentand numerele locurilor de parcare ocupate de cele K masini existente in garaj.

Date de iesire

Fisierul de iesire garaj.out contine o singura linie pe care se afla numarul minim de mutari pe care trebuie sa le faca Ion pentru a putea iesi cu masina din garaj. Daca nu exista solutie, pe prima linie a fisierului de iesire se va scrie mesajul IMPOSIBIL

Restrictii

  • Ion nu va muta masina sa pana cand drumul catre iesire nu este complet eliberat.
  • 2 <= N <= 5000
  • 2 <= P <= N
  • 0 <= K <= N-2

Exemple

garaj.in

garaj.out

8 5 3
1 3
1 7
2 2 4
2 5 6
0
0
1 8
0
2 3 7

2

 

garaj.in

garaj.out

6 4 2
2 5 6
0
0
0
2 4 2
1 3
6 5

1

 

garaj.in

garaj.out

6 3 2
1 4
1 6
0
1 5
2 2 3
0
4 5

4

prof. Emanuela Cerchez
Liceul de Informatica "Grigore Moisil" Iasi

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la Şansa de a deveni campion 2002: adevar, marcare, joc10, prieteni1, bare, soricel1, traseu, zapezi, banda10, soricel2, masina2, excursie1, asmax, salvare, perechi1, culmi, tramvai1, numar2, sume1, raft, bloc, schi, joc12, sediu, soricel3, ferma, fni, sah1, suma3, granita, nr4, fractie, blockout, join, cod3, tunel, lover, trip, pepsi, string, medii, transport, tren3, avion, prime1, poligon1, monkey, premii1, carti2, gramada, microvirus, tv, gramezi1, puncte2, benzina, aranjari, numere5, fat, izo, cafea, top, echipe1, zoo, secvente
De acelaşi autor: celule, scp, vedete, film, ab, supertri, inginer, camp, sl, detinut, simetric, egal, gropi, ruleta, carti, tgv, uscat, afise, dezbateri, bunici, rv, onu, nspecial, secvop, cadou, chimie, reteta, piticot, petrol, checkin, teanc, index, teren, pizza, ecran, drum, text, lbd, aven, spam, pluricex, tren2, gray, pasi, mgo, joc, anagrame, vecini, criptmat, maxim, cutie, party, friends, net, sablon, hd, pc, sir2, aztec, scara, nr, robot2, sah, formule, ed, bilete, hanoig, flood, matrice3, erdos, grup, cd, kfactor, np, cuc, radio, honest, ref, nr01, scor2, convert, auto2, compress, politics, pm, playlist, barbie, firma1, submatrix, ham, pizza1, exam, ants, teatru1, cifre1, bile1, caini, secvreg, pasune, remi, m01, sir23, tren1, joc5, pachete, aedaro, windows, renju, latime, mere1, piloti, peste, pitici, sirag1, stive, turn1, carti1, program1, spioni, kgb, lift, apel, lex, oras, homeless, subsir, dist, harta1, adevar, joc10, bare, zapezi, masina2, perechi1, raft, joc11, joc12, ferma, fni, tunel, lover, pepsi, transport, avion, monkey, premii1, carti2, tv, pact, fat, cafea, echipe1, secvente, petrom, peg, scara1, lant, ecuatii, stiva, bile4, jungla, rj, poli, text1, compus1, rez, politie, anag, codul, coment, muzeu, seti, basm, timer, secvsir, dp, placa, prod3, bursa, submdisj, sotron1, fazan, secvpar, joker, lego, medalii, cfr, antipatie, figura, links, segm, colorare, brazi, mobil, distsir, guess, greiere, pestera, conferinta, chei, ny, nx, ghinion, sumb, drenaj, telecomanda, grupuri, mahjong, rotund, viena, sport2, cos, monoton, micro, valet, nr0, maxviz, anagramabil, nrpal, lista, dame, consiliu, adprod, arme, deal, prodnr, compar, latin, interviu, vintage, prize, nrdiv, arrows, tdrept, agenda, reziston, vot2, tema, smiley, relatii, ech, scadere, nebuni, castig, expand, wb, prime2, virgule, b210
Despre coada: balanta, inginer, camp, rebus, harta, insule, volei, lbd, magic3, axa, cadere, reinvent, ocean14, iepuras2, sah, balls, cd, toys, radio, caini, subperm, castel, excursia, casute, soricel2, masina2, salvare, paianjen, suma2, alee, lanterna, rj, caraibe, taxe1, sotron1, lanturi, tom, k1, dreptunghiuri, sokoban, ny, oldest, drumuri1, alpinist, tsunami, robot3, joc19, valet, oras1, gheizere, zone, taxa, abq, cartite, joc21, traseu3, panda, expand
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, arthur, 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, 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
Software recomandat
surse trimise | ajutor