Cod sursa(job #763941)

Utilizator test666013Testez test666013 Data 3 iulie 2012 16:07:21
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.82 kb
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");
#define MAX 666013

vector<int>v[MAX];
int n;

int elmaj(){
    for(int i=0;i<MAX;i++)
    if(v[i].size()>n/2)
    {
        sort(v[i].begin(),v[i].end());

        int nr = 1 ,c = v[i][0] ,k = 1,l = v[i].size();
        for(int j=1;j < l;j++)
        {
            if(v[i][j] == v[i][j-1])nr++; else nr = 1;
            if(nr > k)
            {
                k = nr;
                c = v[i][j-1];
            }
        }
        if(k > n/2)
        {
            g<<c<<' ';
            return k;
        }
    }
    return -1;
}

int main(){
    int x;
        f>>n;
        for(int i=1;i<=n;i++)
        {
            f>>x;
            v[x%MAX].push_back(x);
        }
        g<<elmaj()<<'\n';
    return 0;
}