# PBinfo #578 – SecvEgale2 – Rezolvare C++

Sursa: Codul lui Andrei
Limbaj: C++
Autor rezolvare: deivid

## Enunț

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).

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n, x[100005];
int main(){
	cin  >> n;	
	for(int i = 1 ; i <= n ; ++ i)
		cin >> x[i];
	long long int cnt = 0;
	for(int i =1 ; i <= n ; ++ i)
	{
		int j = i + 1;
		while(j <= n && x[j] == x[i])
			j ++;
		int p = j - i;
		cnt += 1LL * p*(p+1)/2;
		i = j - 1;
	}
	cout << cnt << endl;
	return 0;
}
```

## Resurse

- [Pagina originală](https://codulluiandrei.ro/rezolvari/pbinfo/578)
- [Sursa C++](https://codulluiandrei.ro/rezolvari/pbinfo/578/cod.cpp)
- [Sursa pe GitHub](https://raw.githubusercontent.com/codulluiandrei/pbinfo/main/pbinfo-578/main.cpp)
- [Cursuri de informatică pentru BAC](https://codulluiandrei.ro/academia/info-curs/pachet-cpp/)
