308
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