Cod sursa(job #1212357)

Utilizator buzu.tudor67Tudor Buzu buzu.tudor67 Data 24 iulie 2014 15:04:59
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include<fstream>
using namespace std;
ifstream fi("elmaj.in");
ofstream fo("elmaj.out");

const int max_n = 1000006;

int i,n,nr,cand_maj,a[max_n];

int main(){
    fi>>n;
    for(i=1;i<=n;i++) fi>>a[i];
    
    nr=0;
    for(i=1;i<=n;i++)
      if(nr==0){ cand_maj=a[i]; nr=1; }
      else if(a[i]==cand_maj) nr++;
           else nr--;
    
    nr=0;
    for(i=1;i<=n;i++)
      if(a[i]==cand_maj) nr++;
      
    if(nr<(n/2)+1) fo<<"-1";
    else fo<<cand_maj<<" "<<nr;
    
    fi.close();
    fo.close();
    return 0;
}