Pagini recente » Cod sursa (job #2930837) | Cod sursa (job #757852) | Cod sursa (job #1556702) | Cod sursa (job #1409770) | Cod sursa (job #864980)
Cod sursa(job #864980)
#include<cstdio>
#include<iostream>
#define maxn 1000050
using namespace std;
int el,n,i,aux,a[maxn];
int elmaj(int n,int a[])
{
int cand=-1,k=0,i,nr=0;
for(int i=0;i<n;++i)
{
if(k==0)
{
cand=a[i];
k=1;
}
else
if(a[i]==cand)
{
k++; // nu am putut împerechea pe votantul i şi astfel trebuie să mărim numărul de votanţi necuplaţi
}
else
k--; // cuplăm votantul i cu orice votant ce îl susţine pe cand şi micşorăm astfel numărul de votanţi necuplaţi
}
if(cand<0)
return cand;
// verificare
for(i=0;i<n;++i) {
if (a[i] == cand)
nr++;
}
if (nr>n/2)
{
aux=nr;
return cand;
}
else
return -1;
}
int main()
{
freopen("elmaj.in","r",stdin);
freopen("elmaj.out","w",stdout);
scanf("%d",&n);
for(i=0;i<n;++i)
scanf("%d",&a[i]);
el=elmaj(n,a);
if(el!=-1)
printf("%d %d\n",el,aux);
return 0;
}