Cod sursa(job #1100391)

Utilizator Mihai22eMihai 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;
}