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

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


Timp maxim de execuţie / test:
1s
Memorie totala disponibilă / stivă:
64MB / 8MB

Pe un tărâm îndepartat, într-un univers paralel, se află cel mai curajos pokemaster, Qwerty. Un pokemaster are trei pokemingi, fiecare pokeminge având câte un pokemon. În lumea pokemonilor există N specii de pokemoni şi niciun pokemon imbatabil. Pokemasterul Qwerty va participa într-un poketurneu de pokelupte organizat la pokeColoseum. Dacă se dă o pokeluptă între oricare doi pokemasteri A şi B, atunci atât A cât şi B vor folosi toţi cei trei pokemoni pe care îi are fiecare. Pokemonul din prima pokeminge a lui A se va pokelupta cu pokemonul aflat în prima pokeminge a lui B, pokemonul din a doua pokeminge a lui A se va pokelupta cu pokemonul din a doua pokeminge a lui B, iar pokemonul din a treia pokeminge a lui A se va pokelupta cu pokemonul din a treia pokeminge a lui B. Dacă într-o pokeluptă se va pokelupta pokemonul i cu pokemonul j atunci pokemasterul care deţine pokemonul i va primi aij puncte iar pokemasterul care deţine pokemonul j va primi aji puncte. O pokeluptă este câştigată de pokemasterul care are cele mai multe puncte. În caz de egalitate nici un pokemaster nu va câştiga acea pokeluptă.
Qwerty ştie că se va pokelupta pe rând cu M pokemasteri şi ştie ce pokemoni au aceştia. El are voie să îşi schimbe oricâţi pokemoni din pokemingi între pokelupte cu pokemoni din colecţia sa. Colecţia sa de pokemoni conţine trei exemplare din toate cele N specii de pokemoni. El ar vrea să câştige toate pokeluptele făcând un număr minim de schimbări de pokemoni.

Cerinţă

Qwerty vă pune la dispoziţie toate datele necesare şi vă oferă 100 de pokepuncte dacă reuşiţi să aflaţi numărul minim de schimbări pe care trebuie să le facă astfel încât să câştige toate pokeluptele din poketurneul desfăşurat la pokeColoseum.

Date de intrare

În fişierul de intrare pokemon.in pe prima linie se vor afla două numere naturale N şi M reprezentând numărul de pokemoni şi numărul de pokemasteri. Pe a doua linie se vor afla trei numere naturale P1, P2 şi P3 reprezentând pokemonii din pokemingile pe care le are Qwerty la începutul poketurneului. Urmează N linii cu câte N numere naturale reprezentând elementele tabloului a. Al j-lea număr de pe a i-a linie reprezintă numărul de puncte pe care le va primi un pokemaster într-o pokeluptă în care el deţine pokemonul i iar adversarul său deţine pokemonul j. Urmează M linii cu câte trei numere naturale reprezentând pokemonii adversarilor lui Qwerty.

Date de ieşire

În fişierul de ieşire pokemon.out se va afişa pe prima linie un singur număr natural reprezentând numărul minim de schimbări de pokemoni pe care trebuie să le facă Qwerty astfel încât să câştige toate pokeluptele poketurneului.

Restricţii

• 4 ≤ N ≤ 50
• 1 ≤ M ≤ 100
• aij ≤ 100 000 000

Exemple

pokemon.inpokemon.outExplicaţii
4 3 1 2 3 7 8 1 2 2 8 1 9 7 2 2 1 3 4 8 6 4 1 4 2 3 1 4 2 4 3 În prima pokeluptă Qwerty îşi va schimba pokemoni din pokemingile 2 şi 3 cu pokemonul 3 respectiv 1 deoarece dacă nu ar face acest lucru, în lupta 1 2 3 vs. 4 1 4 el va avea 5 puncte iar adversarul său 19 puncte. În lupta 1 3 1 vs. 4 1 4 Qwerty câştigă cu scorul de 11 la 7.
În a doua pokeluptă Qwerty păstrează aceaşi pokemoni. În lupta 1 3 1 vs. 2 3 1 Qwerty câştigâ cu scorul de 17 la 11. În ultima pokeluptă Qwerty işi va schimba pokemonul din pokemingea numărul 2 cu pokemonul 1. În lupta 1 1 1 vs. 4 2 4 Qwerty câştigă cu scorul de 12 la 8.
Scenariul de mai sus nu este singurul care garantează numărul minim de schimbări.

autor: Andrei Paul Puni
propunător: Prof. Emanuela Cerchez
Liceul de Informatică ″Grigore Moisil″
emanuela.cerchez@gmail.com
Probleme recomandate
De la Lot VN 2010: rege, cd1, albine1, cifru3, puteri35, regat, parpal, ppcover, kcons, kdtree, permutare, ubergraf, fibo1
De acelaşi autor: telefon, randomizare, tetris1
Despre programare dinamică: vedete, fbr, tgv, zeratul, rv, comun, retea, circuit, sumdif, copaci, drum, text, palind, joc, vikingi, rafturi, balaur, plimbare, party, pc, pioni, seif, iepuri, numere3, perm, ture, bilete, prop, ro, reduceri, cuburi, invest, cutie2, stalpi, nr2, judete, strict, auto2, tree, jobs, leaves, pstring, program, datorii, senzori, farfurii, joc1, barbie, ambigram, rlcs, cub1, bio, chimie1, otilia, pasune, remi, sir23, tren1, joc5, pachete, echipe, comb, agitatie, ivv, peste, pitici, pipe, shgraf, tabara1, stop, randuri, zidar, log, sant, produs, subsir, cover, bcast, emax, dist, mesaj1, imax, avere, asmax, raft, suma2, joc12, fni, nr4, join, transport, masina3, lsort, microvirus, fat, cafea, echipe1, anticip, bsir, diamant, petrom, evantai, spion, acolor, evo, bombo, lacusta, lant, team, pitici1, numere8, dep, stiva, subgeom, pviz, tir1, cabane, piramida1, mosia, cuvinte1, gaina, materom, sortari, turnuri, trans, politie, codul, dansatori, nkbiti, kperms, treegame, siruri2, 123, jucarii, bradut, joc15, expozitie, text3, ic, echilibru, distsir, kmax, stalpi1, gaz, triunghi2, v2d, cuiburi, mine, orientare, activ, secvbiti, kcons, ubergraf, left, acerc, autostrazi, kdist, select, cazare, fluviu, telecomanda, parcela, pion, subs, suma4, sirmax, bdotcom, viena, sablon2, telecab, ikebana, radare, hacker, obstacole, robotel, centrala, verigi, cds, wg, minusk, radioactiv, enigma, jb, efect, maxviz, ripstick, progresii, maxtri, combcuv, blis, subsiruri, mijloc, probleme, unuzero, palindrom1, minerale, speed, zmax, spider, cntgcd, interclasare, bus, pariuri, riglef, fractii2, fall, arbsum, conuri, arbvalmax, procente, metrou
surse trimise | ajutor