Cod sursa(job #1917247)

Utilizator JasminaCornesteanJasmina Cornestean JasminaCornestean Data 9 martie 2017 11:47:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <fstream>
using namespace std;
int v[1000001],n;

ifstream f("elmaj.in");
ofstream g("elmaj.out");

int main()
{
   int nr=0,c,m;
   f>>n;
   for (int i = 1; i <= n; i++)
   {
       f>>v[i];
       if(nr==0) // nu exista nici un sustinator in picioare
       {
           c=v[i]; //c=un candidat sustinut, posibil cel majoritar
           nr=1; //un sustinator in picioare
       }
       else
          if(v[i]==c) nr++; //mai avem un sustinator al lui c
          else nr--;  //un sustinator al lui c a fost pus la pamint din cauza ca am dat de unul diferit
   }

    // verificam daca c are un numar majoritar de voturi
    m = 0;
    for (int i = 1; i <= n; i++)
       if (v[i] == c) m++;

    if (m > n / 2)
        g<<c<<" "<<m;
    else
        g<<-1;

    f.close();
    g.close();
    return 0;
}