Memorija - Županijsko (2015)


Submit solution

Points: 90 (partial)
Time limit: 2.0s
Memory limit: 32M

Problem types
Allowed languages
Assembly, Awk, C, C++, Java, Perl, Python

Županijsko natjecanje 2015. / Osnovna škola (7. razred) - 3.zadatak

Iva i Sandra igraju Memory. Na početku igre, Memory karte na stolu su raspoređene u \(R\) redaka i \(S\) stupaca (ima ih ukupno \(R \times S\)) i okrenute su poleđinom prema gore tako da se ne vidi što je na njima. Na svakoj karti nacrtana je jedna slika, a cilj je pronaći parove karata na kojima se nalazi ista slika.

Potez najprije vuče Iva. U svakom potezu igrač okreće (otkriva) dvije karte sa stola po vlastitom izboru. Ako se ispostavi da te dvije karte čine par (ako je na njima ista slika), igrač ih uklanja i uzima sebi, a sljedeći je potez ponovno njegov. Ako pak otkrivene karte nisu par, igrač ih okreće natrag, a sljedeći je potez protivnikov. Dobar igrač pamti otkrivene slike da bi uspješno pronalazio parove.

Napiši program koji prati karte koje Iva i Sandra okreću i na osnovi tih podataka ispisuje sljedeće:

  1. sve parove, tj. slike koje je Iva osvojila (uklonila i uzela sebi),
  2. sve parove, tj. slike koje je Sandra osvojila,
  3. broj karata koje još nisu uklonjene, a barem dvaput su otkrivene,
  4. broj parova koji još nisu uklonjeni, a iz dosadašnjih se poteza može zaključiti gdje se nalaze (dobar igrač može ih odmah osvojiti).

Svaki redak zasebno se boduje, ako je točan i na svojemu mjestu. Od \(10\) bodova koliko nosi svaki test podatak, prvi redak nosi \(2\) boda, drugi \(2\) boda, treći \(3\) boda i četvrti \(3\) boda.

Ulazni podaci

U prvom retku nalaze se prirodni brojevi \(R\) i \(S\) \((1 \leq R, S \leq 6)\) iz teksta zadatka.

U drugom retku nalazi se prirodan broj \(P\) \((1 \leq P \leq 25)\), broj dosadašnjih poteza.

U svakom od sljedećih \(P\) redaka nalazi se opis poteza u sljedećem obliku: R1 S1 slika1 R2 S2 slika2

To znači da je u dotičnom potezu igrač okrenuo:

  • kartu u retku R_1 i stupcu S_1, na njoj otkrivši sliku1,
  • kartu u retku R_2 i stupcu S_2, na njoj otkrivši sliku2.

slika1 i slika2 su riječi sastavljene od \(2\)-\(10\) malih slova engleske abecede koje opisuju što je na slici.

Napomena: Ulazni podaci ispravno će opisati igru. Dakle, svaka slika javlja se na točno dvjema kartama (koje će možda biti otkrivene, a možda i neće), umnožak \(R \times S\) je paran (jer karte dolaze u parovima), dvije karte otkrivene u istom potezu nalaze se na različitim mjestima i nisu već uklonjene, na karti koja se otkriva više puta uvijek je ista slika, i tako dalje.

Izlazni podaci

U četiri retka ispiši četiri tražena podatka iz teksta. Pritom u prvi redak ispiši samo osvojene slike, odvojene razmakom, redom kojim su osvojene. Ako ih nema, ispiši \(0\). Isto vrijedi za drugi redak.

Primjeri test podataka

Ulaz
1 6
2
1 3 stablo 1 4 stablo
1 2 ptica 1 6 ptica
Izlaz
stablo ptica
0
0
1
Objašnjenje

Opis prvog test podatka: Iva je u prvom potezu osvojila par stabala pa je dobila pravo na novi potez i u njemu osvojila par ptica. Na stolu su preostale karte na mjestima \((1, 1)\) i \((1, 5)\). One sigurno čine par pa u četvrti redak ispisujemo \(1\).


Ulaz
4 4
6
1 1 batman 2 2 superman
3 3 turboman 4 4 batman
1 1 batman 4 4 batman
2 4 turboman 1 4 superman
3 3 turboman 2 4 turboman
1 4 superman 3 1 nepisman
Izlaz
batman
turboman
1
1
Objašnjenje

Opis drugog test primjera: Poteze su redom vukle Iva, Sandra, Iva (osvaja batmane), Iva, Sandra (osvaja turbomane), Sandra. U treći redak ispisujemo \(1\) jer je karta \((1, 4)\) otkrivena dvaput, a još nije uklonjena. U četvrti redak ispisujemo \(1\) jer možemo zaključiti da se par supermana nalazi na \((2, 2)\) i \((1, 4)\).


Comments


  • 1
    Marta  commented on Dec. 4, 2021, 11:07 a.m. edited

    Treba previše varijabla, nisam toliko kreativna :D


    • 0
      Iva  commented on Dec. 4, 2021, 11:08 a.m. edited

      slažem se