Fish


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 2013. / Osnovna škola (6. razred) - 3. zadatak

„Go Fish“ je jednostavna dječja kartaška igra.

Opišimo pravila igre koja su prilagoñena ovom zadatku.

Igru igraju tri igrača označena brojevima od jedan do tri.

U igri se koristi špil od 40 karata.

Karte su označene brojevima od jedan do 10 i ima ih po četiri od svake vrste.

Na početku igre, svaki igrač dobije po 10 karata, a preostale karte se ostave u špilu.

Igrač s oznakom jedan prvi je na potezu.

Igrač na potezu odabire jednog od dva preostala igrača te od njega zatraži da mu preda sve svoje karte s unaprijed zadanom oznakom.

Smije se zatražiti predaja bilo koje karte pod uvjetom da kartu iste oznake igrač na potezu već ima u svojoj ruci.

Ako drugi igrač ima karte takvih oznaka, on ih mora predati. Igra se nastavlja bez promjene igrača na potezu.

Ako nema što predati, tada igrač od kog je zatražena karta kaže „Go fish!“, a igrač na potezu uzima kartu s vrha špila i dodaje je u svoje karte.

Ako je izvukao kartu koju je zatražio tada ostaje na potezu.

Inače, u sljedećem krugu igre na potezu je igrač koji je izgovorio navedene riječi.

Kada igrač u ruci ima četiri karte iste oznake (tj. ima poker), mora ih staviti sa strane te one više ne sudjeluju u igri.

Igra završava kada jedan od igrača ostane bez svojih karata ili kada više nije moguće iz špila povući novu kartu.

U ovom zadatku neće se pojaviti ova situacija.

Napiši program koji će na osnovu prvih N odigranih poteza, odrediti i ispisati koliko je igrač s oznakom jedan dobio karata u prvom krugu igre te koliko je na kraju igre svaki od igrača imao sakupljenih pokera.

Napomena: Svi ulazni podaci strogo će poštivati pravila igre!

ULAZNI PODATCI

U prvom retku nalazi se deset prirodnih brojeva K1 (1 ≤ K1 ≤ 10), oznake karti prvog igrača.

U drugom retku nalazi se deset prirodnih brojeva K2 (1 ≤ K2 ≤ 10), oznake karti drugog igrača.

U trećem retku nalazi se deset prirodnih brojeva K3 (1 ≤ K3 ≤ 10), oznake karti trećeg igrača.

U četvrtom retku nalazi se deset prirodnih brojeva S (1 ≤ S ≤ 10), preostale karte u špilu, pri čemu je prvi broj u retku oznaka karte na vrhu špila, itd.

U petom retku nalazi se prirodan broj N (1 ≤ N ≤ 15), broj odigranih poteza.

U sljedećih N redaka nalaze se po dva prirodna broj A (1 ≤ A ≤ 3), oznaka igrača kojeg je odabrao igrač na potezu i B (1 ≤ B ≤ 10), oznaka karte koju je igrač na potezu zatražio od igrača s oznakom A.

IZLAZNI PODATCI

U prvi redak treba ispisati prvu traženu vrijednost iz zadataka.

U drugi redak, odvojene razmakom, treba ispisati broj sakupljenih pokera prvog, drugog i trećeg igrača.

PRIMJERI TEST PODATAKA

Ulaz
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
1 2 3 4 5 6 7 8 9 10
3
2 5
3 7
2 2
Izlaz
1
0 0 0
Ulaz
1 4 4 5 5 5 6 8 9 10
2 2 2 3 4 4 5 6 6 10
1 2 3 3 7 7 8 9 9 10
3 1 7 8 7 9 8 10 1 6
5
2 4
3 6
1 5
2 5
2 2
Izlaz
2
1 0 2
Ulaz
4 4 2 2 3 8 9 9 10 10
1 1 3 3 5 5 5 6 6 6
7 7 8 9 8 10 1 1 4 7
7 6 8 9 2 2 4 5 10 3
8
3 7
2 7
2 6
3 6
3 2
2 1
1 2
2 10
Izlaz
3
2 0 1
Objašnjenje

Pojašnjenje prvog test primjera: U prvom krugu igre, igrač '1' je od igrača '2' dobio jednu kartu (onu s oznakom 5).

U drugom krugu, igrač '1' je od igrača '3' dobio jednu kartu (onu s oznakom 7).

U trećem krugu igre, igrač '1' je od igrača '2' dobio još jednu kartu (onu s oznakom 2).


Comments

There are no comments at the moment.