Cod sursa(job #1048863)

Utilizator miu_mik93FMI - Paduraru Miruna miu_mik93 Data 6 decembrie 2013 16:02:37
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 1 kb
#include <stdio.h>
#include <iostream>
#include <string>
#include <stdlib.h>
#include <assert.h>
#include <time.h>
#include <algorithm>
#include <vector>
#include <cstdio>
#include <cstring>
#include <fstream>
#include <queue>
#include <cstdlib>
#include <iomanip>
#include <cmath>

using namespace std;

#define NMAX 1000001
#define ERROR 0.0001
int hashMajority(int n, int *a)
{
	vector <int> b[NMAX] ;
    for (int i = 0; i < n; i++)
	{
		if ( b[a[i]].begin() == b[a[i]].end() )
		{
			b[a[i]].push_back(1);
        }
		else
		{
             b[a[i]][0] += 1; 
        }
    }
    for (int i = 0; i < n; i++)
	{
         if (b[a[i]][i] > n/2)
             return a[i];
    }
    return -1;
}


int main()
{
	int N, a[NMAX];
	FILE *f = fopen ("elmaj.in", "r");
	FILE *g = fopen ("elmaj.out", "w");
	fscanf(f, "%d", &N);
	for (int i = 0; i < N; i++)
	{
		fscanf (f, "%d", &a[i]);
	}

	fprintf (g, "%d", hashMajority(N, a));

	fclose(f);
	fclose(g);
	return 0;
}