Cod sursa(job #1060790)

Utilizator cdascaluDascalu Cristian cdascalu Data 18 decembrie 2013 19:06:57
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>
#include <algorithm>
#include <fstream>
#include <iostream>
#include <vector>
#include <queue>
#include <map>
#include <cstring>
#include <string>
#include <set>
#include <stack>
#include <unordered_map>
using namespace std;
int vec[1000001];
void print_sol(int x,int nr)
{
    ofstream g("elmaj.out");
    if(x == -1)
        g<<x;
    else
        g<<x<<" "<<nr;
    g.close();
}
int main()
{
    unordered_map<int,int> hash;
    ifstream f("elmaj.in");
    int N;
    int x;
    f>>N;
    for(int i=1;i<=N;++i)
    {
        f>>x;
        vec[i] = x;
        if(hash.find(x) != hash.end())
            ++hash[x];
        else
            hash[x] = 1;
    }
    for(int i=1;i<=N;++i)
        if(hash[vec[i]] > N/2)
        {
            print_sol(vec[i], hash[vec[i]]);
            return 0;
        }
    print_sol(-1, 0);
    return 0;
}