Pagini recente » Cod sursa (job #1352449) | Cod sursa (job #706020) | Cod sursa (job #1983912) | Cod sursa (job #941460) | Cod sursa (job #2004505)
#include <iostream>
#include <fstream>
#define NMax 1000010
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int a[NMax],i,j,n,nr=0;
void mooreMajority(int n,int a[NMax])
{
int cand=-1,k=0;
for(int i=1;i<=n;i++)
if(k==0)
{
cand=a[i];
k=1;
}
else
if(a[i]==cand)
k++;
else
k--;
if(cand<0)
{
g<<-1;
return;
}
for(int i=1;i<=n;i++)
if(cand==a[i])
nr++;
if(nr>n/2)
g<<cand<<' '<<nr;
else
{
g<<-1;
return;
}
}
int main()
{
f>>n;
for(i=1;i<=n;i++)
f>>a[i];
mooreMajority(n,a);
}