Cod sursa(job #1669040)
Utilizator | Data | 30 martie 2016 12:06:05 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
#include <iostream>
int v[1000000];
using namespace std;
ifstream in ( "elmaj.in" );
ofstream out ( "elmaj.out" );
int main()
{
int n, c, nr, i, k;
in>>n>>v[1];
c = v[1];
nr = 1;
for ( i = 2; i <= n; i++ ) {
in>>v[i];
if ( v[i] == c )
nr++;
else
nr--;
if ( nr == 0 )
{
c = v[i];
nr = 1;
}
}
k = 0;
for ( i = 1; i <= n; i++ ) {
if ( v[i] == c )
k++;
}
if ( k >= n / 2 + 1 )
out<<c<<" "<<k;
else
out<<-1;
return 0;
}