[BOJ 14111] Kreditna
View as PDFMarko je kao član kluba redovitih letača sakupio mnogo nagradnih milja, te se konačno odlučio počastiti putovanjem u Australiju. Međutim, kako to obično biva, nagradne milje ne pokrivaju sve troškove putovanja, pa ga je gospodin iz avio-kompanije telefonski zamolio da mu Marko e-mailom pošalje broj kreditne kartice (niz od 16 znamenki).</p>
Marko je svjestan da je to suludo, ali gospodin s druge strane telefonske linije inzistira na tome. Marko je kao kompromis ponudio da pošalje broj kartice kriptiran sljedećim algoritmom:
- Marko će pronaći najmanju znamenku u broju, a ako ih ima više, među njima će odabrat prvu s lijeva. Nazovimo ovu znamenku A.
- Zatim će pronaći najveću znamenku u broju, a ako ih ima više, među njima će odabrat zadnju. Nazovimo ovu znamenku B.
- Znamenku A će uvećati za 1, osim ako je već jednaka broju 9.
- Znamenku B će umanjiti za 1, osim ako je već jednaka broju 0.
- Konačno, Marko će znamenkama A i B zamijeniti pozicije.
Na primjer, ako je broj njegove kartice 7691 0027 7960 3269, tada će Marko u e-mailu poslati broj: 7691 8027 7960 3261.
Napišite program koji će gospodinu iz avio-kompanije pomoći da odredi broj Markove kreditne kartice.
입력 형식
U prvom i jedinom redu nalazi se niz od 16 znamenaka ‘0’ - ‘9’, broj koji je Marko poslao u e-mailu.</p>
Napomena: Broj kreditne kartice može početi sa znamenkom ‘0’.
출력 형식
Ispišite sve moguće brojeve Markove kreditne kartice, po jedan u svaki red.</p>
Ako ne postoji niti jedan valjani broj kreditne kartice, ispišite “banana”.
예제 입력 1
7691802779603261
예제 출력 1
7691002779603269
예제 입력 2
8381950005575690
예제 출력 2
banana
예제 입력 3
8446462287549826
예제 출력 3
1446462287549896
8446462217549896
8446462287549196
Comments