Va rog,e urgent! In C++
Cerinţa Scrieţi definiția completă a subprogramului C++ cu antetul: long long NrSecvS(int a[], int n, int S) care are trei parametri: a, prin care primeşte un tablou unidimensional de numere naturale nenule n, numărul efectiv de elemente ale tabloului S, un număr natural nenul Subprogramul furnizează returnează numărul de secvențe din vector care au suma strict mai mare decât S. Restricţii şi precizări 1 ≤ a[i] ≤ 1.000 1 ≤ S ≤ 10.000 2 ≤ n ≤ 1.000.000 numele subprogramului cerut este NrSecvS parametrii sunt, în această ordine: a, n, S elementele vectorului a sunt indexate de la 1 O secvență este formată din elemente aflate pe poziții consecutive în vector. Exemplu Dacă n=4, a=(3,6,3,1), S = 10, funcția va returna 2, cele două secvențe de sumă strict mai mare decât 10 fiind 3,6,3 și 3,6,3,1. 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.
Răspunsuri la întrebare
Răspuns de
4
long long NrSecvS(int a[], int n, int S) {
long long nr_secv = 0;
int s[1000001] = {0};
int sum = 0;
for (int i = 1; i <= n; i++) {
sum += a[i];
s[i] = sum;
}
for (int i = 1; i <= n; i++) {
for (int j = i; j <= n; j++) {
int sum_secv = s[j] - s[i - 1];
if (sum_secv > S) {
nr_secv += (n - j + 1);
break;
}
}
}
return nr_secv;
}
Alte întrebări interesante
Franceza,
8 ani în urmă
Matematică,
8 ani în urmă
Franceza,
8 ani în urmă
Arte,
8 ani în urmă
Geografie,
8 ani în urmă
Matematică,
9 ani în urmă
Matematică,
9 ani în urmă