fbpx

Problema #578 – SecvEgale2 – Rezolvari PBInfo

de Mihai-Alexandru

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

Exemplu

Intrare

5
4 3 3 3 5

Ieșire

8

Explicație

Cele 8 secvențe sunt: (4), (3), (3 3), (3 3 3), (3 ), (3 3), (3), (5).

#include <bits/stdc++.h>
using namespace std;
long long v[100005];
int main()
{   
    long long n,nrsecv=0,c;  
    cin >> n;  
    for (int i = 1; i<=n; i++)    
    cin >> v[i];   
    for (int i = 1; i<=n; i++)  
    {        
        c = 1;     
        while (v[i] == v[i+1] && i+1<=n)    
        {        
            c++;    
            i++;     
        }     
        nrsecv+=c*(c+1)/2;  
    }  
    cout << nrsecv;
}
Comentarii

S-ar putea sa iti placa