Cerința
Să se scrie funcția cu următorul antet:
int PermD(int a[], int n)
Funcția primește ca parametru un vector a = (a
1
, a
2
, ..., a
n
)
de lungime n
care memorează toate valorile distincte din mulțimea {1, 2,..., n-1}
, dar exact una din aceste valori apare în vector de două ori. Funcția trebuie să returneze valoarea care apare de două ori.
Restricții și precizări
1 ≤ n ≤ 1.000.000
- Numele funcției este
PermD
- Întotdeauna va exista exact o valoare care apare de două ori
- Elementele din vector sunt indexate de la
1
lan
Exemplu
Dacă n = 6
și a = (3,5,2,1,2,4)
atunci PermD(a, n)
va returna valoarea 2
.
Important
Soluţia propusă va conţine definiţia funcţiei cerute. Prezenţa în soluţie a altor instrucţiuni poate duce erori de compilare sau de execuţie care vor avea ca efect depunctarea soluţiei.
int PermD(int a[], int n) { long long int s1 = 0; for(int i = 1 ; i <= n ; ++i) s1+=a[i]; return s1-(1LL * n * (n - 1) / 2); }