4. naloga

Past za žvižgače

Komisija za nadzor obveščevalnih služb je ugotovila, da je prejšnja leta njihovo zaupno poročilo pricurljalo v javnost, čeprav so vsi prejemniki poročila trdili, da je njihova kopija ostala varno pri njih.

Da bi odkrili, kdo izdaja zaupne dokumente, so letos sklenili, da bodo poročilo na nekaj nevpadljivih mestih rahlo spremenili in pripravili 32 kopij, ki se vse med seboj razlikujejo. Če bo kakšna od teh kopij potem pricurljala v javnost, se bo dalo ugotoviti, katera kopija je to bila.

Ker sta besedi „in“ in „ter“ pomensko precej podobni in tudi dovolj pogosti v besedilu, je načrt takšen: v besedilu najdemo prvih 5 pojavitev ene ali druge besede (katerekoli od obeh; upoštevamo le tiste, ki so zapisane samo z malimi črkami) in na teh petih mestih namesto teh pojavitev vstavimo primerno kombinacijo besed „in“ in „ter“ tako, da bo v vsaki od 32 kopij dokumenta kombinacija drugačna (in si nekako zabeležimo, komu smo katero kopijo izročili — a to ni del naloge).

Napiši program, ki bo najprej prebral celo število med 1 in 32, potem pa besedilo v preostanku vhodne datoteke prepisal na izhod in ga pri tem spremenil tako, kot je opisano v prejšnjem odstavku. Pri tem naj kombinacija izbranih besed „in“ in „ter“ enolično ustreza prebrani številki kopije. Naloga ne predpisuje točno, kako naj kombinacija ustreza številki kopije; to izberi sam in pojasni svojo izbrano preslikavo.

Predpostavimo lahko, da se v besedilu nahaja vsaj pet besed „in“ ali „ter“ (npr.: „...in...in...ter...in...ter...“). Lahko tudi predpostavimo, da vrstice niso daljše od 100 znakov. Število vrstic dokumenta ni omejeno. Da ne zapletamo po nepotrebnem, lahko predpostaviš, da besede med seboj loči natanko en presledek ali pa meja med vrsticami. Druga ločila, posebni znaki ali števke v besedilu ne nastopajo.