Razmaci


Submit solution

Points: 30 (partial)
Time limit: 1.0s
Memory limit: 64M

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

Državno natjecanje iz informatike 2020. / Druga podskupina (3. i 4. razred) - 3. zadatak

Mirkov djed Nono naučio je raditi na računalu, ali griješi u pisanju razmaka (bjelina).

Mirko je stoga odlučio napisati program koji ispravlja razmake u rečenicama njegova djeda.

Pretpostavljamo da se djedov tekst sastoji od velikih i malih slova engleske abecede, te sljedećih interpunkcijskih znakova: točka, zarez, dvotočje, točka-zarez, upitnik, uskličnik, dvostruki navodnici (gornji tj. "neutralni"), oble zagrade, crtica i spojnica (predstavljenih znakom minusa).

Preciznije, riječ je o znakovima iz niza .,:;?!"()-.

Navodnici dolaze u parovima te razlikujemo otvoreni i zatvoreni navodnik koji se u ovom zadatku razlikuju samo po poziciji jer se pišu jednako (").

Pretpostavljamo da su u tekstu i zagrade i navodnici ispravno upareni te da nema neobičnih slučajeva poput nezatvorene zagrade, nezavršenog navođenja, kao ni ugnježđivanja (zagrade unutar zagrada/navodnika ili navodnici unutar zagrada/navodnika).

Crtica (–) i spojnica (-) inače su različiti pravopisni znakovi, ali za potrebe ovog zadatka oba se pišu kao znak minus (-), a razlikujemo ih po razmacima prema pravilu iz donje tablice.

Pomozite Mirku i napišite program koji prima djedov tekst i u njemu prepravlja (dodaje i uklanja) razmake, bez mijenjanja ostalih znakova, u skladu sa sljedećim pravopisnim pravilima.

U testnim primjerima neće biti slučajeva u kojima su neka od navedenih pravila u međusobnoj kontradikciji. Primjerice, neće biti neobičnih slučajeva poput ".," i slično.

Ulazni podaci

U prvom i jedinom retku nalazi se zadani tekst od najviše 300 znakova (mogući znakovi navedeni su u gornjem tekstu) koji neće početi interpunkcijskim znakom ni razmakom, te neće završiti crticom/spojnicom.

Izlazni podaci

U jedini redak ispišite traženi ispravljeni tekst. Pritom razmaci na početku i kraju retka u ispisu nisu bitni (može ih biti i ne mora), ali ostali razmaci su bitni te nije ispravno ispisati dva uzastopna razmaka između nekih znakova.

Primjer zadatka


Comments


  • 0
    Marta  commented on Dec. 4, 2021, 11:07 a.m. edit 2

    jako lagano za 3. i 4. razred osnovne škole :D