Cod sursa(job #2282150)
| Utilizator | Data | 13 noiembrie 2018 12:46:55 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.68 kb |
#include<fstream>
using namespace std;
ifstream fin("elmaj.in");
ofstream fout("elmaj.out");
int n;
int v[1000001];
void majoritar(int n, int v[]){
int x=-1;
int k=0;
for(int i=1;i<=n;i++){
if(k==0){
x=v[i];
k++;
}
else{
if(v[i]==x)
k++;
else
k--;
}
}
int nr=0;
for(int i=1;i<=n;i++)
if(v[i]==x)
nr++;
if(nr>=n/2+1)
fout<<x<<" "<<nr;
else
fout<<-1;
return;
}
int main(){
fin>>n;
for(int i=1;i<=n;i++)
fin>>v[i];
majoritar(n,v);
return 0;
}
