Cod sursa(job #2847080)
Utilizator | Data | 10 februarie 2022 10:30:25 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.47 kb |
#include <bits/stdc++.h>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n,a[1000005],ans,k,nr;
int main(){
fin>>n;
for(int i=1;i<=n;i++)fin>>a[i];
for(int i=1;i<=n;i++){
if(k==0)nr=a[i],k=1;
else if(a[i]==nr)k++;
else k--;
}
int b=0;
for(int i=1;i<=n;i++){
if(a[i]==nr)b++;
}
if(b>=n/2+1)fout<<nr << ' ' <<b;
else fout << -1;
return 0;
}
// 3 4 4 3 3 2 3