[BOJ 14079] R9K
View as PDFMirko je nedavno otkrio IRC (engl. Internet Relay Chat) i vrlo se brzo probio do moderatorske pozicije na nekim popularnim kanalima. Međutim, velik problem stvaraju mu spammeri koji šalju veliku količinu istih poruka u kanal i tako onemogućavaju smislenu komunikaciju među ostalim korisnicima. Mirko je čuo za automatsku metodu moderiranja, znanu kao "R9K mod", pa vas je zamolio da mu je pomognete implementirati. Ideja R9K moda jest da se poruke koje se ponavljaju automatski zabrane, uz dodatan uvjet da treba zanemariti sve nadimke koji se pojavljuju u porukama.</p>
Preciznije, metoda funkcionira na sljedeći način:
- Nadimak je ime pod kojim je poznat korisnik u kanalu.
- Nadimak čini neprazan niz uzastopnih znamenaka, malih ili velikih slova engleske abecede.
- Razlikuju se velika i mala slova.
- Lista mogućih nadimaka poznata je unaprijed.
- Primjeri valjanih nadimaka su "Mirko", "Slavko", "0cool", "AcidBurn"...
- U kanal redom dolaze poruke.
- Poruku čine razmaci, znamenke, mala i velika slova engleske abecede te neki znakovi interpunkcije (točka, crtica, zarez, točka zarez, upitnik i uskličnik).
- Poruka ne može počinjati ili završavati razmakom.
- Poruka može biti prazna.
- Primjeri valjanih poruka su "Mirko i Slavko ce biti na CERC-u.", "Puno srece na natjecanju zele vam organizatori!". </ul> </li>
- Iz svake se poruke prvo izbriše svako pojavljivanje svakog nadimka.
- Nadimak može biti odvojen razmakom, znakom interpunkcije te početkom ili krajem poruke.
- Na primjer, ako su nadimci "Mirko" i "Slavko", poruka "Mirko i Slavko ce biti na CERCu." postaje "_i__ce_biti_na_CERC-u." (donja crta je prikazana umjesto razmaka), dok će poruka "!Mirko.Slavko?" postati "!.?", ali iz poruke "MirkoSlavko" neće biti obrisano ništa. </ul> </li>
- Više od jednog uzastopnog razmaka zamijeni se jednim.
- Na primjer, "_i__ce_biti_na_CERC-u." postaje "_i_ce_biti_na_CERC-u." (donja crta je prikazana umjesto razmaka). </ul> </li>
- Razmaci na početku ili na kraju poruke se brišu.
- Na primjer, "_i_ce_biti_na_CERC-u." postaje "i_ce_biti_na_CERC-u." (donja crta je prikazana umjesto razmaka). </ul> </li>
- Za svaku poruku u redu kojem se pojavljuju, potrebno je ispisati
- "BRISI" ako se prije pojavila
- "OSTAVI" ako se nije prije pojavila </ul> </li> </ul> ## 입력 형식
U prvome retku nalaze se dva prirodna broja N i M, broj nadimaka i broj poruka.
U idućem retku nalazi se N nadimaka odvojenih razmakom.
U idućih M redaka nalazi se po jedna poruka, redom kojim su stizale u kanal.
Ulazni podaci bit će takvi da će na ulazu biti ukupno manje od 2 milijuna znakova, a nadimci i poruke pridržavat će se ograničenja iz teksta zadatka.
출력 형식
Potrebno je ispisati M redaka, po jedan za svaku poruku. U svakom retku, potrebno je ispisati "BRISI" ili "OSTAVI", ovisno o tome treba li zadržati poruku.
예제 입력 1
2 5 Mirko Slavko mirko, Ovo je poruka bez nadimaka mirko, ovo je poruka bez nadimaka Slavko, ovo je poruka s nadimcima Mirko, ovo je poruka s nadimcima mirko slavko ovo je poruka bez nadimaka예제 출력 1
OSTAVI OSTAVI OSTAVI BRISI OSTAVI예제 입력 2
3 10 Mirko Slavko Darko Mirko i Slavko se dopisuju. i se dopisuju. Mirko Slavko Darko Prethodne su dvije poruke bile prazne. Mirko!Slavko MirkoSlavko ! Mirko!Slavko! !!예제 출력 2
OSTAVI BRISI OSTAVI BRISI OSTAVI OSTAVI OSTAVI BRISI OSTAVI BRISI
Comments