ConcursC++17

sstabil

Numim număr sstabil orice număr natural care este format dintr-o singură cifră sau care are suma oricăror două cifre vecine strict mai mare decât nouă.
Asupra oricărui număr care nu este sstabil se pot efectua operaţii de înlocuire a oricăror două cifre vecine care au suma strict mai mică decât zece cu o cifră egală cu suma lor.

Operaţiile de înlocuire pot fi aplicate, în aceleaşi condiţii, şi asupra numerelor rezultate după fiecare înlocuire, de câte ori este nevoie, până când se obţine un număr sstabil.

De exemplu, 291291 este număr sstabil deoarece 2+9>92+9>9 şi 9+1>99+1>9, iar 183183 nu este sstabil pentru că 1+8<101+8<10. Din numărul 24532453, efectuând o singură înlocuire, putem obţine 653653 sau 293293 (număr sstabil) sau 248248. Numărul 653653, nefiind sstabil, permite o nouă operaţie de înlocuire, obţinând astfel numărul 6868, care este sstabil. Analog, din numărul 248248 se poate obţine numărul sstabil 6868.

Cerință

Scrieţi un program care să determine cel mai mare număr natural sstabil care se poate obţine dintr-un număr natural dat, aplicând una sau mai multe operaţii de înlocuire de tipul menţionat.

Date de intrare

Fişierul de intrare sstabil.in conţine pe prima linie un număr natural nn, reprezentând numărul de cifre al numărului dat, iar pe linia a doua, separate prin câte un spaţiu, cifrele acestui număr.

Date de ieșire

Fişierul de ieşire sstabil.out va conţine pe o linie numărul sstabil maxim obţinut.

Restricții și precizări

  • 1≤n≤1 000 0001 \leq n \leq 1 \ 000 \ 000

Exemplul 1

sstabil.in

5
1 0 4 5 1

sstabil.out

191

Explicație

1 0 4 5⏠ 1→1 0 9⏠ 1→1 9 1\normalsize 1 \ 0 \ \overgroup{\LARGE 4 \ 5} \ \normalsize 1 \rightarrow 1 \ \overgroup{\LARGE 0 \ 9} \ \normalsize 1 \rightarrow 1 \ 9 \ 1

Exemplul 2

sstabil.in

5
5 2 8 3 2

sstabil.out

785

Explicație

5 2⏠ 8 3 2→7 8 3 2⏠→7 8 5\overgroup{\LARGE 5 \ 2} \ \normalsize 8 \ 3 \ 2 \rightarrow 7 \ 8 \ \overgroup{\LARGE 3 \ 2} \normalsize \rightarrow 7 \ 8 \ 5

Sursă și autori

ONI 2012, clasele 9. Ionel-Vasile Piț-Rada.

Enunț din Kilonova, sub licența CC-BY-NC-SA-4.0, conform politicii sursei. Adaptări de prezentare și tipografie. Exemplele, formulele și figurile originale sunt păstrate.

RÂNDUL TĂU

Trimite o soluție

Editor de cod

Setul original de teste și regulile de punctare sunt în curs de verificare. Trimiterea pentru evaluare va fi disponibilă după această verificare.

Se verifică autentificarea…

Un pas, apoi următorul.Înapoi sus ↑