# PBinfo #497 – Majoritar – Rezolvare C++

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

## Enunț

Cerința
Se dă un vector cu n elemente, numere naturale. Verificați dacă vectorul are un element majoritar. Numim element majoritar o valoare pentru care numărul de apariții în vector este mai mare decât n/2.

Date de intrare
Programul citește de la tastatură numărul n, iar apoi n numere naturale, separate prin spații, reprezentând elementele vectorului.

Date de ieșire
Programul va afișa pe ecran mesajul NU, dacă vectorul nu are un element majoritar, respectiv DA X, dacă vectorul are un element majoritar, unde X este valoarea acestuia.

Restricții și precizări

1 ≤ n ≤ 100.000
cele n numere citite vor fi mai mici decât 1.000.000.000

Exemplu:
Intrare

10
5 2 1 5 3 5 5 1 5 5
Ieșire

DA 5

## Cod sursă C++

```cpp
#include <iostream>
using namespace std;
int n, x[100005];
int main(){
	cin  >> n;	
	for(int i = 0 ; i < n ; ++ i)
		cin >> x[i];
	int candidat = x[0], contor = 1;
	for(int  i = 1; i < n ; ++i)
	{
		if(x[i] == candidat)
			contor++;
		else
			contor --;
		if(contor == 0)
			candidat = x[i], contor = 1;
	}
	contor = 0;
	for(int i = 0 ; i < n ; ++ i)
		if(x[i] == candidat)
			contor ++;
	if(contor > n/2)
		cout << "DA " << candidat;
	else
		cout << "NU";
	return 0;
}
```

## Resurse

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