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

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


Timp maxim de execuţie/test:
0.1 secunde
Memorie totala disponibilă/stivă:
16 MB/1 MB

Eşti inginer la o firmă care construieşte circuite integrate şi proiectezi un nou circuit integrat pe o plăcuţă de (N+2)x(M+2) milimetri. Pe plăcuţă este trasat un caroiaj care împarte plăcuţa în (N+2)x(M+2) celule cu latura de 1 mm. Celulele sunt organizate în N+2 linii (numerotate de sus in jos de la 0 la N+1) şi M+2 coloane (numerotate de la stanga la dreapta de la 0 la M+1). O celulă este identificată prin numărul liniei şi numărul coloanei pe care se află.
Celulele situate pe linia 0, linia N+1, coloana 0 şi coloana M+1 constituie bordura plăcuţei.
Unele celule de pe plăcuţă conţin o componentă electronică. Pe bordură nu se află componente electornice.
Două componente electronice pot fi conectate dacă se poate determina un traseu între cele două componente, format numai din segmente verticale şi segmente orizontale, traseu care nu intersectează alte componente electronice. Este posibil ca o parte a traseului să fie pe bordură.
De exemplu:

Componentele situate în celulele de coordonate (3,1) şi (4,4) pot fi conectate. De asemenea, componentele situate în celulele (3,2) şi (3,5) pot fi conectate. Dar componente din celulele (3,2) şi (4,3) nu pot fi conectate.
Orice traseu începe şi se sfârşeşte în centrul unei celule şi trece prin centrul celulelor traversate.

Cerinţă

Scrieţi un program care să determine pentru fiecare pereche de componente dintr-un set dat dacă acestea pot fi sau nu conectate şi dacă da, care este lungimea minimă a unui traseu care permite conectarea componentelor.

Date de intrare

Fişierul de intrare inginer.in conţine pe prima linie numerele naturale N şi M, separate prin spaţiu. Pe următoarele N linii este descrisă plăcuţa (exceptând bordura); pe fiecare dintre aceste linii sunt scrise câte M caractere din mulţimea {'X', '.'}. Caracterul 'X' corespunde unei celule în care se află o componentă electronică, iar caracterul '.' corespunde unei celule libere.
Celelalte linii din fişier conţin câte 4 numere naturale separate prin spaţii X1 Y1 X2 Y2 cu semnificaţia că trebuie să se verifice dacă componentele electronice situate în celulele de coordonate (X1,Y1) şi (X2,Y2) pot fi sau nu conectate. Celulele (X1,Y1) şi (X2,Y2) sunt distincte. Pe ultima linie din fişier se află 4 valori egale cu 0, indicând sfârşitul datelor din fişier.

Date de ieşire

Fişierul de iesire inginer.out va conţine pentru fiecare pereche de componente din fişierul de intrare o linie pe care va fi scris un număr natural reprezentând rezultatul verificării: 0, dacă componentele din perechea respectivă nu pot fi conectate, respectiv lungimea minimă a unui traseu ce permite conectarea celor două componente.

Restricţii

  • 1<=N, M <=75
  • Numărul de perechi de componente din fişierul de intrare nu depăşeşte 20

Exemple

inginer.in inginer.out
4 5
XXXXX
X...X
XXX.X
.XXX.
3 2 3 5
3 1 4 4
3 2 4 3
0 0 0 0
5
6
0

prof. Emanuela Cerchez
Liceul de Informatică „Grigore Moisil” Iaşi
emanuela.cerchez@gmail.com
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2008: celule, premii, cai, scp, forum, vedete, film, finala, ab, nice, supertri, mod3, degrade, fractii, balanta, camp, ozn, hora, trei, rebus, sl, detinut, fbr, noroc, simetric, egal, manevre, connect3, gropi, nrcuv, ruleta, carti, pod, bonuri, tgv, fib, uscat, 2sir, atac, matrice2, zeratul, afise, an, dezbateri, test, miniasm, platforma, lac, vopsea, harta, nrbun2, barfa, nrbun, bunici, opmat, acop, tren, cub, picnic, cursa, rv, compus, comun, magic, votare, onu, tramvai, bipal, nspecial, retea, secvop
De acelaşi autor: celule, scp, vedete, film, ab, supertri, 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, garaj, 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, 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, garaj, 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 Lee: insule, lbd, ocean14, iepuras2, sah, radio, lacuri, castel, excursia, soricel2, masina2, paianjen, suma2, soricel3, cub2, alee, rj, taxe1, sotron1, tom, ny, ai, robot3, pixy, valet, oras1, maxtri, lgdrum, gheizere, abq, cartite, joc21, traseu3, wow, panda
Software recomandat
surse trimise | ajutor