Cerinţa
Scrieţi definiția completă a subprogramului C++ cu antetul:
int NrTriplete(int a[], int n, int S)
care are trei parametri:
a
, prin care primeşte un tablou unidimensional de numere întregin
, numărul efectiv de elemente ale tablouluia
S
, un număr întreg
Funcția returnează numărul de triplete (a[i], a[j], a[k])
, unde 0 ≤ i < j < k < n
și a[i] + a[j] + a[k] < S
.
Restricţii şi precizări
-100.000.000 ≤ a[i] ≤ 100.000.000
-100.000.000 ≤ S ≤ 100.000.000
3 ≤ n ≤ 2000
- numele subprogramului cerut este
NrTriplete
- elementele vectorului
a
sunt indexate de la zero - se poate folosi în funcție orice structură de date și orice funcție predefinită sau STL
Exemplu:
Dacă n=4
, a=(1, -2, 0, 4)
, S=5
, atunci valoarea returnată este 3
, tripletele cu suma strict mai mică decât 5
fiind (1,-2,0)
, (1,-2,4)
, (-2,0,4)
.
Important
Soluţia propusă va conţine doar definiţia subprogramului cerut. 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.