Cod sursa(job #1897256)
| Utilizator | Data | 1 martie 2017 11:59:46 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 20 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.6 kb |
#include <fstream>
#define NMAX 1000005
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int n,i,v[NMAX], cnt, elmaj, ans;
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>v[i];
cnt = 0;
elmaj = 0;
for(i=1;i<=n;i++)
{
if(v[i] != elmaj)
cnt--;
if(cnt < 0)
{
elmaj = v[i];
cnt = 1;
}
}
ans = 0;
for(i=1;i<=n;i++)
{
if(elmaj == v[i])
ans++;
}
if(ans >= n/2+1)
g<<elmaj<<" "<<ans;
else g<<"-1";
}
