catmin

Time limit: 0.1s Memory limit: 64MB Input: catmin.in Output: catmin.out

Se dau NN numere naturale nenule a1a_1, a2a_2, \dots, aNa_N.

Cerința

Să se construiască un număr minim folosind toate cifrele numerelor date astfel încât șirul cifrelor fiecărui număr să apară ca subșir în numărul minim construit.

Date de intrare

Pe primul rând din fișierul catmin.in este scris numărul natural NN. Pe al doilea rând sunt scrise cele NN numere naturale, separate prin câte un spațiu.

Date de ieșire

Pe primul rând din fișierul de ieșire catmin.out vor fi scrise cifrele numărului minim construit. Cifrele nu vor fi separate prin spațiu.

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • 1ai1 000 000 0001 \leq a_i \leq 1 \ 000 \ 000 \ 000 pentru orice i=1Ni = 1 \dots N
  • Spunem despre ai1a_{i_1}, ai2a_{i_2}, \dots, aika_{i_k} că este subșir al șirului aa, dacă 1i1<i2<i3<<ikN1 \leq i_1 < i_2 < i_3 < \dots < i_k \leq N
  • Pentru teste în valoare de 2121 de puncte: N500N \leq 500
  • Pentru alte teste în valoare de 3333 de puncte: N10 000N \leq 10 \ 000
  • Pentru alte teste în valoare de 4646 de puncte: nu există alte restricții

Exemplu

catmin.in

3
413 2007 29

catmin.out

200241379

Explicație

Numărul final va avea 99 cifre, adică toate cifrele celor trei numere date. Numerotând pozițiile numărului minim obținut cu 11, 22, \dots, 99 se observă că 413413 se află ca subșir în numărul final și ocupă pozițiile 55, 66, 77, numărul 2 0072 \ 007 ocupă pozițiile 11, 22, 33, 88, iar numărul 2929 ocupă pozițiile 44 și 99. Se observă ușor că acest număr este cel mai mic ce poate fi construit în condițiile date.

Log in or sign up to be able to send submissions!