Tocmai ai primit un șir v
de K
numere naturale nenule distincte. Plecând de la acest șir, te-ai gândit să construiești un șir w
de N
numere naturale distincte, astfel încât un număr x
este în șirul w
dacă și numai dacă exista inițial în șirul v
sau se pot alege cel puțin două numere din șirul v
astfel încât x
este cel mai mare divizor comun al acelor numere. De exemplu, dacă v = {4, 6, 7}
atunci w = {1, 2, 4, 6, 7}
.
Uimit de proprietățile matematice frumoase ale noului șir w
, ai uitat din păcate șirul original v
de la care ai pornit.
Cerința
Dându-se șirul w
, să se găsească un șir posibil inițial v
având un număr minim de elemente.
Date de intrare
Fișierul de intrare comun.in
conține pe prima linie un număr natural N
. Pe cea de-a doua linie se află N
numere naturale nenule distincte, în ordine strict crescătoare, reprezentând șirul w
.
Date de ieșire
Fișierul de ieșire comun.out
va conține pe prima linie numărul minim K
de elemente ale șirului v
. Pe cea de-a doua linie se vor afla K
numere naturale distincte, în ordine strict crescătoare, reprezentând șirul propriu-zis.
Restricții și precizări
- Toate valorile din fișierul de intrare sunt numere naturale nenule mai mici sau egale cu
100.000
. - Pentru teste în valoare de
15
puncte, toate valorile din fișierul de intrare sunt mai mici sau egale cu20
. - Pentru teste în valoare de
50
de puncte, toate valorile din fișierul de intrare sunt mai mici sau egale cu2000
. - Se garantează că există măcar o soluție.
- Dacă există mai multe șiruri inițiale cu număr minim de elemente, oricare este acceptat.
Exemplul 1:
comun.in
5 1 2 4 6 7
comun.out
3 4 6 7
Explicație
1 = cmmdc(6, 7) = cmmdc(4, 6, 7)
. 2 = cmmdc(4, 6)
. Se poate demonstra că orice alt șir cu proprietatea cerută are măcar 3
elemente.
Exemplul 2:
comun.in
4 2 4 8 16
comun.out
4 2 4 8 16
Explicație
Nu există niciun șir de mai puțin de 4
elemente cu proprietatea cerută.