Pagini recente » Cod sursa (job #1740638) | Cod sursa (job #1425838) | Cod sursa (job #2084664) | Cod sursa (job #173303) | Cod sursa (job #1715330)
#include <iostream>
#include <fstream>
using namespace std;
ifstream f1("elmaj.in");
ofstream f2("elmaj.out");
#define NMAX 1000*1001
int a[NMAX], n;
int majoritar(int n, int a[])
{
int cand=-1 , k=0, i;
for (i=1; i<=n; i++)
if (k == 0)
{
cand = a[i];
k=1;
}
else
if ( a[i] == cand )
k++;
else
k--;
if (cand < 0)
return cand;
int nr=0;
for (i=1; i<=n; i++)
if (a[i] == cand)
nr++;
if (nr > n/2)
return cand;
else
return -1;
}
int main()
{
int i;
f1>>n;
for (i=1; i<=n; i++)
f1>>a[i];
int winner = majoritar(n,a);
int nr=0;
if (winner > 0)
{
for (i=1; i<=n; i++)
if (a[i] == winner)
nr++;
f2<< winner << " " << nr;
}
else
f2<<"-1";
f2.close();
return 0;
}