Informatică
soradoru
2016-04-17 00:12:18
Se consideră un şir de n (n <= 10000) numere naturale mai mici decât 100. Scrieţi un program eficient care se determine şi să afişeze numărul secvenţelor din şir cu proprietatea că suma elementelor din secvenţă este strict mai mare decât 50. De exemplu, pentru şirul 10, 20, 31, 40, numărul secvenţelor este 5. Acestea sunt: 10 20 31 10 20 31 40 20 31 20 31 40 31 40 O secvenţă este formată dintr-o succesiune de elemente alăturate din şirul iniţial. Nu veţi afişa secvenţele, ci doar câte sunt. Veţi preciza pe scurt şi ideea de rezolvare.
Răspunsuri la întrebare
Niko1Niko
2016-04-17 06:32:23

Complexitate :O(n) #include #define nmax 10001using namespace std;int a[nmax],n;int main(){    int i,j;    cin>>n;    for(i=1;i<=n;i++)        cin>>a[i];    j=1;    int s=0,sol=0;    for(i=1;i<=n;i++)    {        s+=a[i];        while(s>50)        {            sol+=(n-i+1);            s-=a[j];            j++;        }    }    cout<

Adăugați un răspuns