Cod sursa(job #2669959)
| Utilizator | Data | 8 noiembrie 2020 15:36:56 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 70 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <fstream>
#include <iostream>
#include <algorithm>
using namespace std;
ifstream in("elmaj.in");
ofstream out("elmaj.out");
const int N=1000001;
int contor;
int v[N],n;
int elmaj (int n, int v[])
{
int i = 0;
while (i < n)
{
int j=i;
while ((j<n) && (v[j+1] == v[i]))
j++;
if (n/2<j-i+1){
contor=j-i+1;
return v[i];
}
i= j + 1;
}
return -1;
}
int main(){
int i;
in>>n;
for(i=1;i<=n;++i){
in>>v[i];
}
sort(v+0,v+n);
out<<elmaj(n,v);
out<<" "<<contor;
return 0;
}
