Pagini recente » Borderou de evaluare (job #1984139) | Cod sursa (job #3316626) | Cod sursa (job #3301237) | Cod sursa (job #3300955) | Cod sursa (job #3338176)
#include <bits/stdc++.h>
using namespace std;
ifstream fin ("elmaj.in");
ofstream fout ("elmaj.out");
int v[1000001];
void elementmajoritar(int n, int a[],int &el,int &ap)
{
int cnt = -1, k = 0;
for(int i = 1; i <= n; i++)
{
if(k == 0)
{
cnt = a[i];
k = 1;
}
else if(a[i] == cnt)
k++;
else k--;
}
if(cnt < 0)
{
el = -1;
return;
}
int nr = 0;
for(int i = 1; i <= n; i++)
{
if(a[i] == cnt)
nr++;
}
if (nr >= n / 2 + 1)
{
el = cnt;
ap = nr;
}
else
{
el = -1;
}
}
int main()
{
int n;
fin >> n;
for(int i = 1; i <= n; i++)
fin >> v[i];
int x,y;
elementmajoritar(n,v,x,y);
if(x<0)
{
fout << -1;
}
else
fout << x << " " << y;
return 0;
}