Pagini recente » Cod sursa (job #11783) | Cod sursa (job #2728928) | Cod sursa (job #1819630) | Cod sursa (job #1985862) | Cod sursa (job #1876336)
#include <fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int da(int n, int a[1000001])
{
int cand = -1, k = 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
int nr = 0;
for (int i = 0; i < n; i++)
{
if (a[i] == cand)
nr++;
}
if (nr > n / 2)
return cand;
else
return -1;
}
int main()
{
int n, a[1000001], i;
fin>>n;
for(i=1; i<=n; i++)
fin>>a[i];
fout<<da(n,a);
}