Cod sursa(job #1049976)

Utilizator Catalina_BrinzaBrinza Catalina Catalina_Brinza Data 7 decembrie 2013 23:09:27
Problema Elementul majoritar Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
//
//  main.cpp
//  elmaj
//
//  Created by Catalina Brinza on 12/7/13.
//  Copyright (c) 2013 Catalina Brinza. All rights reserved.
//

#include <fstream>
#include <vector>
#define nr_zone 666013
using namespace std;
ifstream f("elmaj.in");
ofstream g("elmaj.out");


vector <pair <int,int>> hashy[nr_zone];

int main()
{long long n,i,x,max=0,maxel=-1,ji,k;
    f>>n;
    bool ok=false,ok2;
    for (i=0;i<n;++i)
    {
        f>>x;
        k=x%nr_zone;
        ok2=false;
            for (ji=0;ji<hashy[k].size();++ji)
            {
                if (hashy[k][ji].first==x) {ok2=true; ++hashy[k][ji].second; if (hashy[k][ji].second==(n>>1)+1)
                {maxel=x;
                    max=hashy[k][ji].second; ok=true;
                }}break;
            }
        
        if (!ok2)
            hashy[k].push_back(make_pair(x,1));
        if (ok) break;
    }
    for (ji=i;ji<n;++ji)
    {
        f>>x;
        if (x==maxel) ++max;
    }
    
    if (max==0) g<<maxel;
    else g<<maxel<<' '<<max;
    return 0;
}