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

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


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

Pentru jocul kalah se folosesc N cutii, în care se află bile. Cutiile sunt amplasate pe circumferinţa unui cerc şi sunt numerotate de la 1 la N în sensul acelor de ceasornic.
O mişcare este realizată în felul următor: se iau toate bilele dintr-o cutie şi se repartizează consecutiv câte una, în cutii, începând cu următoarea cutie în direcţia mişcării acelor de ceasornic. Dacă numărul bilelor este mai mare decât cel al cutiilor, repartizarea continuă până la epuizarea bilelor. În acest caz, se vor pune bile şi în cutia din care iniţial au fost extrase.
Un exemplu de mişcare este prezentat pe desen. Sunt repartizate bilele din cutia 1. În partea dreaptă bilele sunt numerotate în ordinea în care au fost puse în cutii.



În timpul unui antrenament, Ionuţ a amplasat aleatoriu bilele prin cutii, după care a început să facă mişcări. După fiecare mişcare el înscria numărul cutiei în care era pusă ultima bilă. La un moment dat Ionuţ a hotărât să restabilească repartizarea iniţială a bilelor în cutii, folosind repartizarea finală şi notiţele făcute la mişcările precedente.

Cerinţă

Scrieţi un program, care să îl ajute pe Ionuţ să determine repartizarea iniţială a bilelor.

Date de intrare

Fişierul de intrare kalah.in va conţine pe prima linie două numere naturale separate printr-un spaţiu N şi M reprezentând numărul de bile din cutii şi respectiv numărul de mişcări efectuate de Ionuţ.
Fiecare dintre următoarele N linii conţine un număr natural. Pe linia i+1 se află numărul de bile existente în cutia i în repartizarea finală.
Fiecare dintre următoarele M linii conţine câte un număr natural cuprins între 1 şi N. Pe linia i+N+1 se află indicele cutiei în care a fost pusă ultima bilă la a i-a mişcare.

Date de ieşire

Fişierul de ieşire kalah.in va conţine o singură linie pe care vor fi scrise N numere naturale separate prin câte spaţiu. Al i-lea număr de pe linie reprezintă numărul de bile existente iniţial în cutia i.

Restricţii

Numărul total de bile nu depăşeşte 109.
N, M <= 100

Exemple

kalah.inkalah.out
4 1 1 2 2 2 4 7 0 0 0
2 2 1 1 2 2 1 1

autor: Prof. Sergiu Corlat
propunător: Prof. Emanuela Cerchez
Liceul de Informatica ″Grigore Moisil″
emanuela.cerchez@gmail.com
Articole recomandate
Probleme recomandate
De la Finala .campion 2005: barca1, ivv, peste, camion, algola
De acelaşi autor: nice, fib, atac, mere, ff, patrate, astre, baby, zapada, pendul, unu, dragon, placi, druid, bete, comori, ploaia, lot, arcas, factk, robot1, cetati, palc, expo, porumb, universitate, safeu, capra, zuma, gsm, megascoala
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, kafka, 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, 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, kafka, comori, loc, bile3, cat, felinare, spioni, lift, cutii, roboti, pesti, zar1, joc16, safeu, joc20, dame, conjectura, arc, wb, robot6
surse trimise | ajutor