Cod sursa(job #3206711)

Utilizator CelestinNegraru Celestin Celestin Data 23 februarie 2024 21:21:36
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.75 kb
#include <fstream>
#define nmax 1000005
using namespace std;
int v[nmax],n,cnt,candidat,cnt2;
ifstream cin("elmaj.in");
ofstream cout("elmaj.out");
int main()
{
    cin>>n;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i];
    }
    for(int i=1;i<=n;i++)
    {
        if(cnt==0)///daca nu avem niciun candidat necuplat
        {
            candidat=v[i];
            cnt=1;///facem elementul de pe pozitia i candidat
        }
        else if (v[i]==candidat)///creste numarul de candidati necuplati
        {
            cnt++;
        }
        else cnt--;///scade numarul de candidati necuplati
    }
    for(int i=1;i<=n;i++)
        if(v[i]==candidat)
            cnt2++;
    if(cnt2>n/2)
        cout<<candidat<<" "<<cnt2;
    else cout<<-1;
    return 0;
}