Cod sursa(job #1073868)

Utilizator jul123Iulia Duta jul123 Data 6 ianuarie 2014 21:13:54
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.95 kb
#include<iostream>
#include<cstdio>
#include<vector>
#define MOD 666013
using namespace std;
vector<pair<int, int> >h[666014];

int main()
{
    FILE *fin, *fout;
    fin=fopen("elmaj.in", "r");
    fout=fopen("elmaj.out", "w");

    int i, n, x, val, ok, j, maj1=-1, maj2;
    fscanf(fin, "%d", &n);
    for(i=0; i<n; i++)
        {
            fscanf(fin, "%d", &x);
            val=x%MOD;
            ok=0;
            for(j=0; j<h[val].size(); j++)
                if(h[val][j].first==x)
                    {h[val][j].second++;
                    ok=1;
                    if(h[val][j].second>=(n/2+1))
                       {
                        maj1=x; maj2=h[val][j].second;

                    }
                    }
            if(ok==0)
                h[val].push_back(make_pair(x, 1));
        }
        if(maj1!=-1)
        fprintf(fout, "%d %d", maj1, maj2);
        else
            fprintf(fout, "-1");
}