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

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


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

Toată lumea ştie de "războiul" continuu dintre motanul Tom şi şoricelul Jerry. Toată lumea ştie că ei aleargă cât e ziua de lungă, Tom încercând să-l prindă pe Jerry şi nereuşind aproape niciodată. Să vedem şi noi cum putem să estimăm ce se va întâmpla cu cei doi.  Într-o casă, al cărui plan îl avem de la serviciul de cadastru al oraşului, Tom se află la pândă, aşteptându-l pe Jerry. Acesta apare şi începe urmărirea binecunoscută. Jerry încearcă să ajungă pe drumul cel mai scurt la una dintre căsuţele lui. Însă Tom aleargă de două ori mai repede decât Jerry. Oare îl poate ajunge?

Cerinţă

Fiind cunoscute poziţiile iniţiale ale lui Tom, ale lui Jerry, precum şi poziţiile "salvatoare" a locurilor din perete unde Jerry se poate ascunde, să se determine locurile în care Tom îl poate prinde pe Jerry.

Date de intrare

Fişierul de intrare tom.in conţine pe prima linie valorile n şi m, separate printr-un spaţiu, reprezentând dimensiunile planului casei. Următoarele n linii conţin câte m caractere litere mari, fără spaţii între ele, reprezentând planul casei şi poziţionarea lui Tom, a lui Jerry şi a căsuţelor lui Jerry (caracterul 'P' pentru perete, caracterul 'X' pentru spaţiu liber, caracterul 'T' pentru Tom, caracterul 'J' pentru Jerry şi caracterul 'C' pentru căsuţa lui Jerry).

Date de ieşire

Fişierul de ieşire tom.out va conţine pe prima linie o valoare naturală nr, indicând numărul locurilor în care Tom îl poate prinde pe Jerry sau 0 dacă acest lucru nu este posibil. Fiecare dintre următoarele nr linii va conţine câte două numere naturale x y, separate printr-un spaţiu, indicând o poziţie în care Tom îl poate prinde pe Jerry, x reprezentând linia, iar y coloana din planul casei. Cele nr poziţii vor fi ordonate crescător după linii, iar dacă există mai multe poziţii pe aceeaşi linie, ordonate crescător după coloană.

Restricţii

  • 2<=n, m<= 255
  • Atât Tom cât şi Jerry nu se pot deplasa decât prin spaţiul liber (marcat cu 'X') şi numai în cele 4 direcţii paralele cu pereţii (doar se ştie că Jerry aleargă mai ales pe lângă perete!!!). Evident Jerry are acces şi la locurile marcate cu 'C', doar acolo e casuţa lui!
  • Jerry poate să treacă prin locurile marcate cu 'C' (casa lui), în timp ce Tom nu poate.
  • "Tom aleargă de două ori mai repede ca Jerry" semnifică faptul că în timp ce Jerry face un pas, în locurile permise lui (pe una din direcţiile N, E, S, V), Tom va face 2 paşi.
  • Numerotarea liniilor şi coloanelor planului casei începe de la 1, poziţia 1,1 fiind în colţul din stânga, sus.

Exemplu

tom.in tom.out Explicaţii
10 10
PPPPPPPPPP
PXXXXTPXXP
PXPPPPXXXP
PXXXPJPPXP
PPPXPXXXXP
CXXXXXPXPP
PXPXXXPXXP
PXPPPPPXXP
PXXXXXXXXP
PPPPPPPPPP

1
6 2

Jerry face până aici 6 paşi, iar Tom 12.  Vor ajunge în acelaşi timp în acest loc, deci...

prof. Marinel Şerban
Liceul de Informatică „Grigore Moisil” Iaşi
marinel_serban@yahool.com
propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la .campion 2009: efort, muzeu, bal, seti, basm, dansatori, smith, timer, secvsir, vot, cetati, reziduu, biliard, prefix1, accesibil, dp, jocv, placa, palc, prod3, predecesor, standard, cantor, nkbiti, nori, triti, kperms, sotron1, impozit, tablite, fazan, lanturi, secvpar, joker, matriosca, asociativ, lego, medalii, permutari, cfr, treegame, scanduri, site, fotbal, links, kbiti, segm, album, iepurasi, jucarii, m4, bradut, trmv, colorare, greutati, concat, graphgame, ic, echilibru, brazi, mat, cubinvers, mobil, distsir, parbit
De acelaşi autor: premii, finala, fractii, trei, manevre, nrcuv, an, vopsea, opmat, tramvai, bipal, kpal, sarpe, replace, factori, barca, perechi, grupe, cod, reactii, factura, decript, trenuri, holo, cifre, firma, tribile, mesaj, tricouri, pajura, monede, programs, fry, repeat, red, pavaj, bacan, nrbinar, invest, cutie2, loc, depou, nr3, zid, felinare, sir3, sqr, carte, labirint, stea, count, evaluare, super, schimb, zaruri, vectori, spirala, desen1, rima, ceas1, romane, sms, bac, excursia, joc7, furnici, munte1, cezar, marcare, excursie1, culmi, sume1, schi, nr4, fractie, cod3, medii, tren3, top, sant1, imagine, ocr, perfect, pluton, reforma, alee, ceas2, paritate, borcane, aranjare, comoara1, culmi1, reactivi, submult, sablon1, sir8, sume2, dansatori, smith, matriosca, asociativ, control1, calorii, immortal, concat, mat, cubinvers, mine, divizori, cheie, stelar, joct, minmax, cladire, adunscad, razboi, ore, oras1, sumprod, prisme, operatii1, lgdrum, unupatru, chibrituri, extraprime, prieten, rebus1, grindina, opmult, betisoare, antitero, clase, pagini, ornament, ordine, spioni1
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, garaj, alee, lanterna, rj, caraibe, taxe1, sotron1, lanturi, k1, dreptunghiuri, sokoban, ny, oldest, drumuri1, alpinist, tsunami, robot3, joc19, valet, oras1, gheizere, zone, taxa, abq, cartite, joc21, traseu3, panda, expand
Despre Lee: inginer, insule, lbd, ocean14, iepuras2, sah, radio, lacuri, castel, excursia, soricel2, masina2, paianjen, suma2, soricel3, cub2, alee, rj, taxe1, sotron1, ny, ai, robot3, pixy, valet, oras1, maxtri, lgdrum, gheizere, abq, cartite, joc21, traseu3, wow, panda
surse trimise | ajutor