comun

Time limit: 0.3s Memory limit: 64MB Input: comun.in Output: comun.out

Tocmai ai primit un şir vv de KK numere naturale nenule distincte. Plecând de la acest şir, te-ai gândit să construieşti un şir ww de NN numere naturale distincte, astfel încât un număr xx este în şirul ww dacă şi numai dacă exista iniţial în şirul vv sau se pot alege cel puţin două numere din şirul vv astfel încât xx este cel mai mare divizor comun al acelor numere.

De exemplu, dacă v=[4,6,7]v = [4, 6, 7] atunci w=[1,2,4,6,7]w = [1, 2, 4, 6, 7].

Uimit de proprietăţile matematice frumoase ale noului şir ww, ai uitat din păcate şirul original vv de la care ai pornit.

Cerință

Dându-se şirul ww, să se găsească un şir posibil iniţial vv 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 NN. Pe cea de-a doua linie se află NN numere naturale nenule distincte, în ordine strict crescătoare, reprezentând şirul ww.

Date de ieșire

Fişierul de ieşire comun.out va conţine pe prima linie numărul minim KK de elemente ale şirului vv. Pe cea de-a doua linie se vor afla KK 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 000100 \ 000.
  • Pentru teste în valoare de 15 puncte, toate valorile din fişierul de intrare sunt mai mici sau egale cu 2020.
  • Pentru teste în valoare de 50 de puncte, toate valorile din fişierul de intrare sunt mai mici sau egale cu 2 0002 \ 000.
  • 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)1 = \text{cmmdc}(6, 7) = \text{cmmdc}(4, 6, 7)
2=cmmdc(4,6)2 = \text{cmmdc}(4, 6)
Se poate demonstra că orice alt şir cu proprietatea cerută are măcar 33 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 44 elemente cu proprietatea cerută.

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