Jasna


Submit solution

Points: 70 (partial)
Time limit: 2.0s
Memory limit: 64M

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

Državno natjecanje 2017. / Osnovna škola (7. razred) - 2. zadatak

Jasna je Filipu dala broj mobitela, ali Filip je poslije pozivanjem ustanovio da je broj pogrešan: “Birali ste broj koji se ne koristi”.

Filip je shvatio da je Jasna pogriješila prilikom izgovaranja svog broja ili je on pogriješio pri zapisivanju.

(Zanemarit ćemo mogućnost da mu je Jasna namjerno dala pogrešan broj.)

Pretpostavio je da se dogodila samo jedna pogreška i odlučio isprobati sve brojeve koji “dolaze u obzir” na temelju zapisanog broja. Pritom se vodio sljedećim kriterijima:

  1. Pretpostavio je da je pozivni broj mreže (prve tri znamenke, npr. 095) sigurno točan, tj. da se pogreška ne nalazi u njemu. Pravila koja slijede odnose se stoga samo na preostale znamenke, od četvrte nadalje.

  2. Pogreška je možda nastala jednom zamjenom dviju susjednih znamenaka (npr. zapisano je 64 umjesto 46), što je u praksi najvjerojatnije.

  3. Pogreška se možda dogodila pogrešnim zapisivanjem jedne znamenke (npr. 9 umjesto 2).

  4. Zapisani broj, bez pozivnog broja, može imati šest ili sedam znamenaka. Ako ih je zapisano šest, možda je slučajno ispuštena jedna znamenka (s bilo kojeg mjesta). Ako ih je zapisano sedam, možda je slučajno dodana neka znamenka (na bilo koje mjesto).

Napiši program koji pomaže Filipu te za zadani zapisani broj, te za neke od kriterija 2, 3 ili 4 (kriterij 1 se podrazumijeva), ispisuje sve brojeve koji dolaze u obzir kao posljedica jednog od tih kriterija.

ULAZNI PODATCI

U prvom retku nalazi se zapisani broj, niz od devet ili deset znamenaka.

U drugom retku nalazi se jedan od stringova “2”, “3”, “4”, “23”, “24”, “34” ili “234”, a predstavlja kriterije koje će Filip primijeniti u traženju Jasninog broja.

IZLAZNI PODATCI

Ispišite sve tražene brojeve, svaki u svoj redak, bilo kojim redoslijedom. Svi ispisani brojevi moraju biti međusobno različiti i različiti od zadanog broja.

PRIMJERI TEST PODATAKA

Ulaz
0990123456
24
Izlaz
0991023456
0990213456
0990132456
0990124356
0990123546
0990123465
099123456
099023456
099013456
099012456
099012356
099012346
099012345
Objašnjenje

Opis prvog test podatka: prvih šest ispisanih brojeva dobiveno je primjenom kriterija 2, a sljedećih sedam dobiveno je primjenom kriterija 4.

Ulaz
097005500
3
Izlaz
097005800
097000500
097005540
097005502
097005520
097004500
097005400
097005503
097005505
097003500
097002500
097605500
097005700
097005504
097005000
097005501
097045500
097015500
097035500
097001500
097005509
097705500
097405500
097005506
097065500
097005900
097095500
097305500
097009500
097005100
097075500
097905500
097005530
097025500
097005580
097007500
097005550
097005507
097005510
097805500
097006500
097005508
097055500
097005200
097008500
097205500
097005300
097005600
097085500
097005570
097505500
097005560
097005590
097105500

Comments

There are no comments at the moment.