Cod sursa(job #1588971)

Utilizator tanasaradutanasaradu tanasaradu Data 3 februarie 2016 18:51:38
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 1.04 kb
#include<algorithm>
#include<fstream>
using namespace std;
/// 3 4 4 3 3 2 3
int v[1000005],a[999999],n;
int main()
{
    ifstream fin("elmaj.in");
    ofstream fout("elmaj.out");
    int i,j,x,maxim,y;
     fin>>n;
    x=(n/2)+1;
    maxim=0;
    for(i=1;i<=n;i++)
    fin>>v[i];
    for(i=1;i<=n;i++)
     {
         a[v[i]]++;       /// elementul de pe pozitia 3 creste cu 1
                          /// elementule de pe pozitia 4 creste de doua ori
                          /// elementul de pe pozitia 3 creste de trei ori(acuma este 4)
                          /// 4 este egal cu 4 atunci maxim=4(numarul de aparitii) si y=3
                          ///y este elementul care apare de cele mai multe ori in vector
        if(a[v[i]]>=x)
         {
             maxim=a[v[i]];
             y=v[i];             ///x este mai mare ca 0 atunci nu exista niciun element care apare de mai multe ori in vector
         }
     }
     if(x>maxim)fout<<"-1";
     else
    fout<<y<<" "<<maxim;
    fin.close();
    fout.close();
}