Cod sursa(job #1100391)
Utilizator | Mihai Ionut Enache Mihai22e | Data | 6 februarie 2014 20:50:26 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Teme Pregatire ACM Unibuc 2013 | Marime | 0.72 kb |
#include<stdio.h>
#include<vector>
using namespace std;
vector < int > v;
int n, i, res, nr = 1, x;
int main()
{
FILE *f = fopen("elmaj.in", "r");
fscanf(f, "%d", &n);
for(i = 0; i < n; ++i)
{
fscanf(f, "%d", &x);
v.push_back(x);
if(x == res)
++nr;
else
--nr;
if(nr == 0)
res = x, nr = 1;
}
fclose(f);
for(i = 0, nr = 0; i < n; ++i)
if(v[i] == res)
++nr;
FILE *g = fopen("elmaj.out", "w");
if(nr >= n / 2 + 1)
fprintf(g, "%d %d\n", res, nr);
else fprintf(g, "-1\n");
fclose(g);
return 0;
}