Cod sursa(job #1402423)

Utilizator Corneliu10Dumitru Corneliu Corneliu10 Data 26 martie 2015 16:17:45
Problema Elementul majoritar Scor 70
Compilator cpp Status done
Runda Arhiva educationala Marime 0.57 kb
#include <iostream>
#include <fstream>
using namespace std;
int n,i,v[1000004],ap,nr;
int main()
{
    ifstream f("elmaj.in");
    ofstream g("elmaj.out");
    f>>n>>v[0];nr=v[0];ap=1;
    for(i=1;i<n;i++)
    {
        f>>v[i];
        if(v[i]==v[i-1]) {ap++;continue;}
        if(v[i]!=v[i-1]) ap--;
        if(ap==0)
        {
            nr=v[i];
            ap=1;
        }
    }
    if(ap>0)
    {
        ap=0;
        for(i=0;i<n;i++)
            if(v[i]==nr) ap++;
        if(ap>=(n/2)+1) g<<nr<<" "<<ap;
        else g<<-1;
    }
    else g<<-1;
}