Cod sursa(job #2340296)
| Utilizator | Data | 10 februarie 2019 11:04:00 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <bits/stdc++.h>
#define NMAX 1000003
using namespace std;
ifstream f ("elmaj.in");
ofstream g ("elmaj.out");
int cunt=0, cand=-1,i,n,nr;
int v[NMAX];
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
for(i=1;i<=n;i++)
{
if(cand != v[i])
{
if(cunt==0)
cand=v[i] , cunt =0;
else cunt--;
}
else cunt++;
}
for(i=1;i<=n;i++)
if(v[i]==cand)nr++;
if(nr>=(n+1)/2)g<<cand<<' '<<nr;
else g<<-1;
return 0;
}
