Cod sursa(job #1081895)

Utilizator maritimCristian Lambru maritim Data 13 ianuarie 2014 22:34:01
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Teme Pregatire ACM Unibuc 2013 Marime 0.66 kb
#include<stdio.h>
#include<fstream>
using namespace std;
 
ifstream f("elmaj.in");
ofstream g("elmaj.out");
 
#define MaxN 1000100
 
int N,MAJ,COUNT = 1,A[MaxN];
 
int main()
{
    f >> N;
    for(int i=1;i<=N;i++)
        f >> A[i];
    MAJ = A[1];
    for(int i=2;i<=N;i++)
        if(A[i] != MAJ)
        {
            COUNT --;
            if(COUNT == 0)
            {
                MAJ = A[i];
                COUNT = 1;
            }
        }
        else
            COUNT ++;
    COUNT = 0;
    for(int i=1;i<=N;i++)
        if(A[i] == MAJ)
            COUNT ++;
    if(COUNT >= N/2+1)
        g << MAJ << " " << COUNT;
    else
        g << "-1";
    return 0;
}