Informatică, întrebare adresată de stefy24, 9 ani în urmă

Cerința
Se dă un vector cu n elemente, numere naturale. Determinați câte secvențe ale vectorului au toate elementele egale.

Date de intrare
Programul citește de la tastatură numărul n, apoi cele n elemente ale vectorului.

Date de ieșire
Programul va afișa pe ecran numărul C, reprezentând valoarea cerută.

Restricții și precizări
1 ≤ n ≤ 100.000
elementele vectorului vor fi mai mici decât 1.000.000.000

Răspunsuri la întrebare

Răspuns de ap53
1
#include <iostream>
using namespace std;

unsigned long long c,n,a[100000];

int main()
{
    cin>>n;
    cin>>a[0];
    int L=1;
    for(int i=1;i<n;i++)
    {
        cin>>a[i];
        if(a[i]==a[i-1])
            L++;
        else
        {
            c+=(L*(L-1))/2;
            L=1;
        }
    }
    if(L>1)
        c+=(L*(L-1))/2;
    if(L==n)
        c=n*(n-1)/2;
    cout<<n+c;
    return 0;
}
Alte întrebări interesante