Cod sursa(job #1256710)

Utilizator andreey_047Andrei Maxim andreey_047 Data 6 noiembrie 2014 19:38:56
Problema Elementul majoritar Scor 30
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <iostream>
#include <fstream>
#define nmax 1000009
using namespace std;
int A[nmax],n,nr;
int main(){
    int i,cand,k=0;
    ifstream f("elmaj.in");
    f>>n;
    for(i=1;i<=n;i++)
        f>>A[i];
    f.close();
    cand=-1;
 cand=-1;k=0;
 for(i=1;i<=n;i++){
 if(k==0){cand=A[i];k=0;}
 else if(A[i]==cand) k++;
 else k--;}
 ofstream g("elmaj.out");
 if(cand < 0) {g<<"-1\n";return 0;}
 for(i=1;i<=n;i++)
    if(A[i]==cand) nr++;
    if(nr>n/2) {g<<cand<<' '<<nr<<'\n';return 0;}
    g<<"-1\n";
    g.close();
    return 0;
}