"Memories don't live like people do. They always 'member you"
Se dau doi vectori și , ambii cu elemente, și definiția următoarei funcții:
long long f(int A[], int B[], int n){
long long sum = 0;
for(int i = 1; i <= n; i++)
for(int j = i+1; j <= n; j++)
if(B[i] == B[j]) sum += __gcd(A[i], A[j]);
return sum;
}
Gya-chan, fiind foarte nerăbdătoare să își deschidă cadourile, se trezește în toiul nopții cu speranța să le găsească deja sub brad. Surpriză mare când în drum spre brad dă peste chiar unicul și preaiubitul Moș Crăciun. Acesta, supărat că a fost prins, decide să-i dea fetei o provocare.
Cerință
Moș Crăciun îi pune fetei întrebări de forma , iar fata trebuie să spună care este valoarea returnată de funcția dacă se va înlocui cu . Actualizările lui Moș Crăciun sunt permanente, cu alte cuvinte, după fiecare operație, modificările aduse vectorului se vor păstra.
Date de intrare
Pe prima linie se află două numere, , reprezentând numărul de elemente din cei doi vectori, și , numărul de întrebări. Pe următoarele două linii se află câte numere, prima linie conținând elementele din vectorul , iar a doua din vectorul . Pe ultimele linii se află întrebările puse de Moș Crăciun.
Date de ieșire
Se vor afișa linii, prima desemnând valoarea inițială a funcției, iar pe următoarele linii sunt răspunsurile după fiecare modificare.
Restricții și precizări
- ,
- după fiecare operație
- Bahoi vrea să bulănească problema, dar este complet interzis!!! Numărul de elemente distincte ale vectorului este .
NUPrimiți 5 puncte dacă ghiciți valoarea# Punctaj Restricții 1 13 2 12 , 3 19 4 25 5 31 Fără restricții suplimentare
Exemplul 1
stdin
3 2
2 3 2
2 2 1
3 2
2 1
stdout
1
4
2
Explicație
Înainte de prima modificare, valoarea returnată de funcția va fi .
După prima modificare, valoarea returnată va fi .
Exemplul 2
stdin
10 4
1 10 9 2 3 10 9 9 1 8
2 2 2 4 2 1 3 1 1 2
5 4
4 1
6 3
8 3
stdout
16
11
14
11
19