Cod sursa(job #1460624)

Utilizator petru.cehanCehan Petru petru.cehan Data 13 iulie 2015 13:19:14
Problema Elementul majoritar Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.92 kb
#include <iostream>
#include <fstream>

using namespace std;

ifstream fin ("elmaj.in") ;
ofstream fout ("elmaj.out") ;

int a[101] , n ;

void Citire()
{
    fin >> n ;
    for ( int i = 0 ; i < n ; ++ i )
          fin >> a[i];
}

void ElementMajoritar(int a[],int n)
{
    int cand = a[0];
    int nr = 1 ;

    for ( int i = 1 ; i < n ; ++ i )
       {
           if ( cand == a[i] )
              ++ nr ;
           else
              -- nr ;
        if ( nr == 0 )
             { cand = a[i] ; nr = 1 ; }
        }

    if ( nr > 0 )
      {
          nr = 0 ;
          for ( int i = 0 ; i < n ; ++ i )
             if ( a[i] == cand )
                  nr++;
          if ( nr > n / 2 )
           {
             fout << cand << " " << nr ;
           }
        else
             fout << "-1" ;
      }
}

int main()
{
    Citire ();
    ElementMajoritar ( a , n ) ;
    return 0;
}