Sumgcd

Time limit: 0.5s Memory limit: 256MB Input: sumgcd.in Output: sumgcd.out

Se dă un șir AA cu NN termeni numere naturale nenule. Pentru fiecare termen AiA_{i}, cu i2i\geq 2, definim Bi=max{gcd(Ai,A1),gcd(Ai,A2),,gcd(Ai,Ai1)}B_{i}=\max\{\gcd(A_{i},A_{1}), \gcd(A_{i},A_{2}),\cdots, \gcd(A_{i},A_{i-1}) \} și S(A)=B2+B3++BNS(A)=B_{2}+B_{3}+\cdots +B_{N}, unde gcd(x,y)\gcd(x,y) este cel mai mare divizor comun al numerelor xx și yy.

Cerință

  1. Să se determine S(A)S(A).
  2. Să se determine o permutare PP a numerelor de la 11 la NN pentru care S(C)S(C) este maximă, unde CC este șirul al cărui termeni sunt definiți prin Ci=APiC_{i}=A_{P_{i}} pentru orice ii de la 11 la NN.

Date de intrare

Pe prima linie a fișierului sumgcd.in se află numerele TT și NN, unde TT reprezintă numărul cerinței. Pe a doua linie se află NN numere naturale nenule reprezentând termenii șirului AA.

Date de ieșire

În fișierul sumgcd.out se va afișa S(A)S(A) pentru T=1T=1, iar pentru T=2T=2 se vor afișa termenii permutării PP, separați prin spații. Dacă există mai multe soluții, o puteți afișa pe oricare.

Restricții și precizări

  • 1N100 0001 \leq N \leq 100 \ 000
  • 1Ai1 000 0001 \leq A_{i}\leq 1 \ 000 \ 000
  • La cerința 2, dacă S(C)S(C) nu este maximă, se acordă punctaj parțial egal cu (S(C)S(C))450%\left( \frac{S(C)}{S(C')}\right)^{4}\cdot 50\% din punctajul testului, unde CC' este șirul pentru care S(C') e maximă.
# Punctaj Restricții
1 8 T=1, 1N1 000T=1,\ 1\leq N\leq 1 \ 000
2 17 T=1, 1N100 000T=1,\ 1 \leq N \leq 100 \ 000
3 18 T=2, 1N9T=2,\ 1 \leq N \leq 9
4 57 T=2, 1N100 000T=2,\ 1\leq N\leq 100 \ 000

Exemplul 1

sumgcd.in

1 5
12 7 15 21 20

sumgcd.out

16

Explicație

Pentru primul test avem S(A)=gcd(12,7)+gcd(15,12)+gcd(21,7)+gcd(20,15)=16S(A)= \gcd(12,7)+\gcd(15,12)+\gcd(21,7)+\gcd(20,15)=16.

Exemplul 2

sumgcd.in

2 5
12 7 15 21 20

sumgcd.out

1 5 3 4 2

Explicație

Pentru al doilea test avem permutarea (1, 5, 3, 4, 2) ce corespunde șirului C=(12,20,15,21,7)C = (12,20,15,21,7), iar S(C)=gcd(12,20)+gcd(20,15)+gcd(12,21)+gcd(7,21)=19S(C)=\gcd(12,20)+\gcd(20,15)+\gcd(12,21)+\gcd(7,21)=19.

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