Mancala


Submit solution

Points: 90 (partial)
Time limit: 5.0s
Memory limit: 64M

Author:
Problem type
Allowed languages
Assembly, Awk, C, C++, Java, Perl, Python

Županijsko natjecanje 2012. / Osnovna škola (7. razred) - 3. zadatak Županijsko natjecanje 2012. / Osnovna škola (8. razred) - 2. zadatak

Mancala je zajednički naziv za društvene igre koje se igraju na igraćoj ploči po principu „broji i lovi“.

Popularne su u Africi, a po mentalnim izazovima koje pružaju uspoređuju ih sa šahom.

Promotrimo jednu od tih igara s prilagođenim pravilima koju su zaigrala dva lemura, Gjuro XIII i njegov pomoćnik Maurice, kada su bili u Africi.

Mancalu igraju dva igrača (A i B) na igraćoj ploči kao na slici.

Igrači sjede na nasuprotnim stranama ploče i svaki na početku igre ima na raspolaganju 24 kamenčića.

Kamenčići igrača A su ravnomjerno raspoređeni u 6 udubljenja (u svako po 4) na gornjoj strani ploče (udubljenja s oznakama „1“ do „6“), a kamenčići igrača B su ravnomjerno raspoređeni u 6 udubljenja na donjoj strani ploče (udubljenja s oznakama „7“ do „12“).

Veliko udubljenje s igračeve desne strane zovemo „banka“.

U pojedinom krugu igre igrač na potezu (u prvom je to uvijek igrač „B“) odabere jedno neprazno udubljenje sa svoje strane ploče te u ruku uzme sve kamenčiće iz njega.

Krećući se u smjeru suprotnom od kazaljke na satu igrač u svako sljedeće udubljenje mora spustiti po točno jedan kamenčić sve dok ne potroši sve kamenčiće iz ruke.

Igračeva banka je uključena u obilazak dok se protivnikova banka preskače (npr. igrač „A“ pri obilasku, s udubljenja 6 prelazi na A pa na 7, a s 12 odmah prelazi na 1 dok igrač „B“ s udubljenja 12 prelazi na B pa na 1, a sa 6 odmah na 7).

Ako zadnji kamenčić završi u do tada praznom udubljenju na strani igrača na potezu i nasuprotno udubljenje na protivnikovoj strani bude neprazno, tada taj igrač u svoju banku preseljava kamenčiće iz oba udubljenja.

U sljedećem krugu se u načelu mijenja igrač na potezu. Do promjene ne dolazi ako je zadnji kamenčić iz ruke igrača na potezu završio u njegovoj banci.

Napiši program koji za opis nekoliko odigranih krugova ispisuje trenutni broj kamenčića u svim udubljenjima.

Kako Gjuro i Maurice još nisu u potpunosti shvatili pravila igra, dogodi se da neki od njih odabere pogrešno udubljenje (udubljenje bude na krivoj strani ploče ili bude prazno) i da mora ponavljati odabir dok ne odabere dozvoljeno udubljenje.

Ulazni podaci

  • prirodan broj N ( 0 ≤ N ≤ 25), broj udubljenja (pogrešnih ili pravih) odabranih tijekom igre;

  • N prirodnih brojeva Xi ( 1 ≤ Xi ≤ 12, i=1..N), oznaka odabranog udubljenja.

Izlazni podaci

četrnaest prirodnih brojeva odvojenih razmakom koji predstavljaju broj kamenčića u svakom od 14 udubljenja u poretku 1-2-3-4-5-6-A-7-8-9-10-11-12-B.

Napomena: postojat će test primjeri za koje nije nužno nakodirati sve uvjete iz zadatka kako bi bili točni!

Primjeri test podataka

Ulaz
2
8
1
Izlaz
0 5 5 5 5 4 0 4 0 5 5 5 5 0

Ulaz
6
8
1
10
4
12
5
Izlaz
2 7 6 1 0 6 2 6 2 6 1 7 0 2

Comments

There are no comments at the moment.