Pagini recente » Borderou de evaluare (job #1382144) | Cod sursa (job #1382224) | Cod sursa (job #2169419)
#include <bits/stdc++.h>
#define INFILE "elmaj.in"
#define OUTFILE "elmaj.out"
using namespace std;
ifstream in(INFILE);
ofstream out(OUTFILE);
vector<int> elemente;
int N;
void Read(){
in>>N;
for(int i=1;i<=N;i++){
int x;
in>>x;
elemente.push_back(x);
}
}
void BoyerMoore(){
int count=0;
int candidate=0;
for(auto e:elemente){
//cout<<candidate<<"\n";
if(count==0){
candidate=e;
count=1;
continue;
}
else{
if(e==candidate)
count++;
else
count--;
}
}
//cout<<count<<"\n";
if(count==0){
out<<-1;
return;
}
count=0;
for(auto e:elemente){
if(e==candidate)
count++;
}
if(count>N/2){
out<<candidate<<" "<<count;
}
else{
out<<-1;
}
}
int main(){
Read();
BoyerMoore();
return 0;
}