Cod sursa(job #634344)
Utilizator | Cristian Lambru maritim | Data | 15 noiembrie 2011 23:11:41 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.54 kb |
#include<stdio.h>
#include<fstream>
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
#define MaxN 1000100
int N,MAJ,COUNT = 1,A[MaxN];
int main()
{
f >> N;
for(int i=1;i<=N;i++)
f >> A[i];
MAJ = A[1];
for(int i=2;i<=N;i++)
if(A[i] != MAJ)
{
COUNT --;
if(COUNT == 0)
{
MAJ = A[i];
COUNT = 1;
}
}
else
COUNT ++;
COUNT = 0;
for(int i=1;i<=N;i++)
if(A[i] == MAJ)
COUNT ++;
if(COUNT >= N/2+1)
g << MAJ << " " << COUNT;
else
g << "-1";
return 0;
}