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

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


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

Nemultumiti de conditiile grele de munca si de salariile mici, functionarii din primaria orasului Unsinnigburg au gasit o metoda foarte ingenioasa de a rezolva doleantele cetatenilor: tracasarea pana la epuizare. Astfel, orice cetatean care are o problema de rezolvat in primarie trebuie sa treaca mai intai pe la biroul "Informatii" de unde va primi un cartonas colorat cu o culoare 1 (culorile sunt codificate prin numere naturale consecutive cuprinse intre 1 si nc) pe care este scris numarul bs al biroului la care el trebuie sa mearga pentru a-si rezolva (teoretic) problema. Birourile sunt numerotate cu numere naturale consecutive cuprinse intre 1 si nb. Din pacate (dar nu si din intamplare) functionarul din biroul respectiv va constata ca nu el trebuie sa rezolve problema respectiva si, plin de amabilitate, ii va inmana cetateanului, in functie de culoarea cartonasului pe care acesta il are, un alt cartonas, nu neaparat colorat diferit, dar care sigur va avea scris pe el numarul altui birou. Povestea se va repeta si in noul birou, drept care, in scurt timp, cetateanul respectiv va fi suficient de tracasat ca sa nu-si dea seama ca este posibil sa se plimbe, inutil, pe un acelasi traseu. Deplasarea cetateanului de la un birou la altul se face intr-un minut, iar eliberarea unui cartonas nou, in orice birou, este instantanee. Dupa t minute de la plecarea din biroul "Informatii", primind un nou cartonas inutil intr-un birou, cetateanul, epuizat psihic si fizic, va renunta sa mai incerce sa-si rezolve problema si va pleca acasa, lasandu-i pe functionari sa-si bea linistiti cafelele.

Cerinta

Dandu-se valorile nb, nc, bs si t, sa se determine numarul biroului care a eliberat cetateanului ultimul cartonas, inainte ca acesta sa se hotarasca sa renunte. Pentru fiecare birou se cunosc culoarea noului cartonas ce va inmanat cetateanului, precum si numarul noului birou indicat, in functie de fiecare culoare posibila a cartonasului cu care cetateanul s-a prezentat la acel birou.

Date de intrare

Fisierul de intrare kafka.in contine pe prima linie numerele nb, nc, bs si t, despartite prin spatii, iar pe fiecare din urmatoarele nb*nc linii se gasesc cate doua numere naturale, despartite printr-un spatiu, reprezentand culoarea si numarul unui cartonas eliberat de fiecare birou 1,2,...,nb in functie de toate culorile 1,2,...,nc posibile pentru cartonasul cu care cetateanul s-a prezentat la biroul respectiv, astfel: pe linia (i-1)*nc+j+1 din fisier (unde 1<=i<=nb si 1<=j<=nc) sunt scrise culoarea noului cartonas eliberat cetateanului in biroul i si numarul scris pe cartonas in cazul in care cetateanul s-a prezentat la biroul i avand un cartonas de culoare j.

Date de iesire

Fisierul de iesire kafka.out va contine o singura linie pe care va fi scris numarul biroului indicat in cerinta problemei.

Restrictii

  • 1 <= nb <= 200
  • 1 <= nc <= 20
  • 1 <= bs <= 200
  • 1 <= t <= 1000000000

Exemplu

kafka.in

kafka.out

Explicatie

3 2 2 7
2 2
1 3
2 1
1 3
1 1
1 2

1

Din prima linie a fisierului de intrare rezulta ca nb=3, nc=2, bs=2 si t=7.
Din a doua linie rezulta ca un cetatean care a venit la biroul 1 cu un cartonas avand culoarea 1 va fi trimis cu un cartonas avand culoarea 2 spre biroul 2, iar din a treia linie deducem ca daca el a venit la biroul 1 cu un cartonas avand culoarea 2 va fi trimis cu un cartonas avand culoarea 1 spre biroul 3.
Din a patra linie rezulta ca un cetatean care a venit la biroul 2 cu un cartonas avand culoarea 1 va fi trimis cu un cartonas avand culoarea 2 spre biroul 1, iar din a cincea linie deducem ca daca el a venit la biroul 2 cu un cartonas avand culoarea 2 va fi trimis cu un cartonas avand culoarea 1 spre biroul 3.

Din a sasea linie rezulta ca un cetatean care a venit la biroul 3 cu un cartonas avand culoarea 1 va fi trimis cu un cartonas avand culoarea 1 spre biroul 1, iar din a saptea linie deducem ca daca el a venit la biroul 3 cu un cartonas avand culoarea 2 va fi trimis cu un cartonas avand culoarea 1 spre biroul 2.
In continuare, printr-un triplet (c,b,m) vom intelege ca respectivul cetatean s-a prezentat cu un cartonas avand culoarea c la biroul b dupa m minute de la plecarea din biroul "Informatii". Astfel, traseul urmat de cetatean in acest caz a fost urmatorul: (1,2,1)->(2,1,2)->(1,3,3)->(1,1,4)->(2,2,5)->(1,3,6)->(1,1,7), deci ultimul birou vizitat de el inainte sa renunte a fost biroul 1.

lect. drd. Radu Boriga
Universitatea "Titu Maiorescu" - Bucuresti
Contact:r_boriga@yahoo.com

propunător: Prof. Emanuela Cerchez
emanuela.cerchez@gmail.com
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, arthur, kimberley, 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: cifra, policefm, ratb, festival, laser, prime, bile3, chimie1, livada1, minerale
Despre matrice: vopsea, harta, opmat, sarpe, light, magic2, tetris, origami, concurs, iepuras, tribile, criptmat, cutie, patrate, 3d, pajura, perspic, vecini2, livada, matrice3, erdos, grup, scor2, reteta2, rezervatie, scoici, tablou, game, stea, submatrix, cifru, jokes, oua, trecere, na, dotnet, renju, ghici, mere1, agitatie, lacuri, sotron, desen1, camion, ceas1, fibo, parc, excursia, matricea, zidar, joc6, log, concurs2, cladiri, dist, centru, robinson, cuburi2, joc8, joc9, romeo, adevar, soricel2, avere, joc11, vizibil, sah1, blockout, masina3, lsort, anticip, matrice1, evantai, spion, pereti, zumzi, roboti, placare, tabel, ocr, numere7, lacusta, becuri, sir5, flori, cartele, furnica, pavare, poarta, rj, peri, poligon2, sablon1, gradina, matrice4, poartas, balcon, submdisj, v, matrx, figura, neuroni, raze, roboti1, bila, iepurasi, colorare, mat, submatrix1, simetric1, plaja, xor2, guess, albine1, joct, alfabetar, stele, tablou1, alpinist, cladire, cri, grupe2, el, mahjong, sir9, acces, tort1, joc17, mesaj3, zar1, xy, poteci, avioane, broscute, safeu, acoperire1, radioactiv, robot4, lcdr, jb, slide, maxtri, dame, triunghi4, elicop, compresie, mijloc, cubulete, romb, 2ndesc, medalion, bile6, zigzag, puncte5, intersectii, matd3, matrixdel, speed, seif1, traseu2, incadrare, betasah, zona, latin, zmax, amestec, sudoku1, gradina1, spider, zone, bemo, rombul, interclasare, rebus1, tabla, arrows, pseudobil, patrat1, rascoala, harta2, relatii, lasere, defrag, matcnt, ssdj, cript, ssk, teren1, fence, cifre6
Despre vector: trei, simetric, egal, ruleta, pod, uscat, afise, an, bunici, cursa, onu, tramvai, cadou, kpal, expresie, piticot, roci, petrol, grad, ruleta2, ecran, palma, concurs, holo, ab2, tren2, cifre, mgo, firma, anagrame, joc2, br, maxim, astre, numere2, baby, zapada, hd, startrek, vecini2, drept, teatru, tir, patrate2, nr, cifra, repeat, unu, criptare, ratb, placi, sume3, turist, matrice3, pavaj, sume, bacan, spair, grup, friends2, bitslang, fisc, scor2, cat, nr3, chimie2, zid, politics, submat, reteta2, rezervatie, creioane, felinare, 2numere, exp, scoici, patrate1, playlist, sqr, carte, oua, turn, ants, div3, jeton, politic, trecere, maraton, zaruri, suma1, mere1, agitatie, lacuri, secv, sotron, triunghi, carti1, spioni, kalah, excursia, matricea, maxq, oras, furnici, baschet, ingerasi, numar1, prieteni, aritma, cezar, bifo, pal, seceta, bare, soricel1, antena, avere, paianjen, bloc, schi, suma3, fractie, tunel, pepsi, prefix, tren3, avion, premii1, csir, top, bsir, secvente, cod4, cuburi3, limbaj, panouri, sant1, zumzi, sport1, baschet1, mere3, powerpuff, placare, sir4, volei1, tabel, ocr, numere7, lacusta, flori, pluton, elfi, mare, grupe1, maroco, cartonas, cabina, case, cod5, furnica, numere8, paritate, comoara1, exponent, control, exp1, joc13, popas, reactivi, siruri1, vanatoare, submult, text1, taxe1, visul, paranteze, puncte3, cub3, numere9, panglica, pietre, poartas, sume2, bal, secvsir, vot, prefix1, accesibil, palc, standard, bursa, meteo, jetoane, printesa, palindrom, joker, matriosca, loto, cuvant, cladiri1, secvente1, zar, tren4, asociativ, lego, medalii, figura, joc14, neuroni, char, dartz, turism1, calorii, xor1, paltrei, album, livada1, colorare, greutati, brazi, submatrix1, plaja, cd1, cifru3, permutare, miere, tetris1, conferinta, atelier, radical, bileprime, nx, atletism, sumb, minmax, sumacifre, jocprim, sircifre, cmmdcsecv, secvb, siruri3, cifru4, vase, carte1, grad1, litere, magic6, macheta, butoane, ec, stalpi2, fagure, goe, papusa, taburet, mesaj3, zar1, joc16, talent, joc18, cos, punctfix, risipa, liste, triburi, nr0, oneton, nor, nrpomi, paisprezece, anagramabil, zuma, joc20, dale, perechi2, consiliu, becuri2, codpatrat, adprod, qtri, reconst, arme, triunghi4, deal, ozn1, cifru5, flori1, elicop, roata, trifoi, maxbin, culori2, numar5, bile6, proiecte, alune, cuburi4, sstabil, intersectii, copaci2, 7segmente, amedie, drept2, divider, eliminare, matd3, prodnr, fraze, vectori1, compar, unific, galbeni, clepsidru, calcule, puncte6, maxp, cursa1, secvp, swap, extraprime, onigim, divizori1, remi1, tetris3, amestec, eoliene, split, momente, secvente2, ausoara, aranjare2, vintage, binremove, sminus, subsets, interclasare, palindromuri, colina, doitrei, rebus1, tcif, munte3, triunghi6, schi1, rascoala, solitar, praslea, vot2, tema, sprime, sir2dif, aperm, unudoi, prajituri, tan, concurs4, ech, arc, dominant, ordine, tv1, nebuni, sort2dist, lightbot, iepuras1, castig
Despre simulare: lbd, iepuras, tren2, mgo, joc2, comori, loc, bile3, cat, felinare, spioni, lift, kalah, cutii, roboti, pesti, zar1, joc16, safeu, joc20, dame, conjectura, arc, wb, robot6
surse trimise | ajutor