Se dau două grupe de cifre. Fiecare grupă conține câte cifre, nu neapărat distincte între ele. Așezând toate cifrele primei grupe într-o ordine oarecare, obținem un număr pe care îl notăm . Într-un mod asemănător, așezând toate cifrele celei de-a doua grupe într-o ordine oarecare, obținem un alt număr, .
Cerință
Să se determine și astfel încât diferența să fie mai mare sau egală cu și minimă. În cazul în care există mai multe posibilități de a forma cele două numere pentru a obține diferența minimă, se va alege varianta în care este minim.
Date de intrare
Fișierul de intrare 2numere.in
conține pe prima linie o valoare naturală, reprezentând valoarea lui . Pe fiecare dintre următoarele două linii se află câte cifre separate prin câte un spațiu.
Date de ieșire
În fișierul de ieșire 2numere.out
va conține trei linii. Pe prima linie se va afla un număr natural reprezentând valoarea determinată pentru . Pe a doua linie se va afla un număr natural reprezentând valoarea determinată pentru . Pe a treia linie se va afla o valoare reprezentând diferența dintre și .
Restricții și precizări
- ; pentru din teste,
- pentru toate datele de test există soluție
- în fiecare dintre cele două grupe există cel puțin o cifră nenulă
- dacă un program determină corect diferența minimă, el obține din punctaj; dacă programul determină corect și cea mai mică valoare a lui pentru care se obține această diferență, el obține din punctaj.
- cifrele de aflate la începutul numerelor sau nu se vor afișa
Exemplul 1
2numere.in
2
2 4
9 1
2numere.out
24
19
5
Exemplul 2
2numere.in
4
3 4 2 4
9 0 1 5
2numere.out
2344
1950
394
Exemplu 3
2numere.in
3
4 0 0
0 4 0
2numere.out
4
4
0
Explicație
Există și alte valori pentru și care dau diferența , dar nu este minim, de exemplu și .