fuziune

Time limit: 0.3s Memory limit: 256MB Input: fuziune.in Output: fuziune.out

Se consideră un șir de nn numere naturale nenule a=(a1a2an)a = (a_1 a_2 \dots a_n). Două numere situate pe poziții consecutive în șir (aia_i și ai+1a_{i+1}, unde 1i<n1 \leq i < n) pot fuziona dacă ele au cel puțin un divizor comun strict mai mare decât 11. În urma fuziunii ele vor fi înlocuite de cel mai mic număr care se divide cu toți divizorii lui aia_i și ai lui ai+1a_{i+1}. Operația de fuziune se poate repeta, pe noul șir obținut, până când în șir nu va exista nicio pereche de numere situate pe poziții consecutive care să poată fuziona. Să notăm cu bb șirul obținut după efectuarea tuturor operațiilor de fuzionare.

Numim coeficient de fuziune al șirului bb și îl notăm cu cf(b)cf(b) un număr nenul care are proprietatea că orice termen al șirului bb are cel puțin un divizor comun cu cf(b)cf(b), strict mai mare decât 11. În plus, cf(b)cf(b) trebuie să respecte următoarele condiții:

  1. factorii săi primi sunt distincți (de exemplu 30=23530 = 2 \sdot 3 \sdot 5 are doar factori primi distincți, dar 18=23318 = 2 \sdot 3 \sdot 3 nu are doar factori primi distincți);
  2. orice factor prim al lui cf(b)cf(b) este factor prim pentru cel puțin un număr din șirul bb;
  3. lista factorilor primi distincți ai lui cf(b)cf(b) ordonată strict crescător este minimă din punct de vedere lexicografic.

Cerință

Dat fiind un șir de numere naturale nenule, scrieți un program care să rezolve următoarele două cerințe:

  1. să se determine lungimea minimă a șirului bb obținut după efectuarea tuturor operațiilor de fuziune posibile;
  2. să se determine cf(b)cf(b).

Date de intrare

Fișierul de intrare fuziune.in conține pe prima linie cerința CC care trebuie să fie rezolvată (11 sau 22). Pe cea de-a doua linie se află un număr natural nn, reprezentând numărul de valori din șir. Pe următoarele nn linii se află cele nn numere din șir, câte un număr pe o linie.

Date de ieșire

Fișierul de ieșire fuziune.out va conține o singură linie pe care va fi scris răspunsul la cerința CC din fișierul de intrare.

Restricții

  • 1n100 0001 \leq n \leq 100 \ 000;
  • 2ai21092 \leq a_i \leq 2 \sdot 10^9, pentru orice 1in1 \leq i \leq n;
  • Se garantează că numărul de factori primi distincți pentru numerele din șirul bb (pentru cerința 11) și pentru cf(b)cf(b) (pentru cerința 22) este cel mult egal cu 250250.
  • Fie d=(d1<d2<<dk)d = (d_1 < d_2 < \dots < d_k) și f=(f1<f2<<fh)f = (f_1 < f_2 < \dots < f_h) două liste de factori primi distincți ordonate strict crescător. Spunem că dd este mai mică din punct de vedere lexicografic decât ff dacă există o poziție ii astfel încât dj=fjd_j = f_j, pentru orice 1j<i1 \leq j < i și (di<fid_i < f_i sau i=k+1i = k + 1).
# Punctaj Restricții
1 15 C=1C = 1, 1n1 0001 \leq n \leq 1 \ 000 și numerele din șir sunt 104\leq 10^4.
2 15 C=1C = 1, 10 000n100 00010 \ 000 \leq n \leq 100 \ 000 și numerele din șir sunt 104\leq 10^4.
3 10 C=1C = 1, 1n1 0001 \leq n \leq 1 \ 000 și numerele din șir sunt 2109\leq 2 \sdot 10^9.
4 30 C=1C = 1, 10 000n100 00010 \ 000 \leq n \leq 100 \ 000 și numerele din șir sunt 2109\leq 2 \sdot 10^9.
5 12 C=2C = 2 și rezultatul va fi un număr de maximum 1818 cifre.
6 18 C=2C = 2 și rezultatul va fi un număr cu maximum 15001500 cifre.

Exemplul 1

fuziune.in

1
8
30
18
997
121
625
5
55
101

fuziune.out

4

Explicații

C=1C = 1.
Numerele 30=23530 = 2 \sdot 3 \sdot 5 și 18=23218 = 2 \sdot 32 vor fuziona și se obține valoarea 90=232590 = 2 \sdot 3^2 \sdot 5.
Numerele 625625, 55 și 5555 vor fuziona de asemenea, apoi rezultatul va fuziona cu 121121 și se obține valoarea 75625=5411275625 = 5^4 \sdot 11^2.
În șirul rezultat vor rămâne, după efectuarea tuturor fuzionărilor 44 numere (9090, 997997, 7562575625 și 101101).

Exemplul 2

fuziune.in

2
3
16
18
25

fuziune.out

30 

Explicație

C=2C = 2.
În urma efectuării tuturor operațiilor de fuziune posibile se obține șirul:
144=2432144 = 2^4 \sdot 3^2
25=5225 = 5^2
cf(b)=235=30cf(b) = 2 \sdot 3 \sdot 5 = 30.

Exemplul 3

fuziune.in

2
8
30
18
97
121
625
5
55
10403

fuziune.out

3233010

Explicație

C=2C = 2.
În urma efectuării tuturor operațiilor de fuziune posibile se obține șirul
90=232590 = 2 \sdot 3^2 \sdot 5
9797
75625=5411275625 = 5^4 \sdot 11^2
10403=10110310403 = 101 \sdot 103
cf(b)=2351197101=3233010cf(b)=2 \sdot 3 \sdot 5 \sdot 11 \sdot 97 \sdot 101 = 3233010.

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