Cod sursa(job #675717)
| Utilizator | Data | 7 februarie 2012 23:37:40 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.63 kb |
#include <fstream>
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int n, nr, maj, a[1000010];
void majoritar()
{
int i;
nr = 1;
maj = a[0];
for (i=1; i<n; i++)
if (a[i]==maj) nr++; else {
nr--;
if (nr<0) {
nr = 1;
maj = a[i];
}
}
nr = 0;
for (i=0; i<n; i++)
if (a[i]==maj) nr++;
if (nr<n/2+1) nr = -1;
}
int main()
{
int i;
f >> n;
for (i=0; i<n; i++) f >> a[i];
majoritar();
if (nr>0) g << maj << ' ' << nr; else g << -1;
return 0;
}
