Cod sursa(job #2118999)
Utilizator | Data | 31 ianuarie 2018 15:06:48 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.92 kb |
#include <cstdio>
using namespace std;
int sir[1000000];
int main()
{
freopen("elmaj.in", "r", stdin);
freopen("elmaj.out", "w", stdout);
int n;
int nr = 0;
int p = -1;
scanf("%d", &n);
for(int k = 0; k < n; k++){
int x;
scanf("%d", &sir[k]);
x = sir[k];
if(x == p){
nr++;
}
else{
if(nr > 1){
nr--;
}
else if(nr == 1){
nr = 0;
p = -1;
}
else if(nr == 0){
nr = 1;
p = x;
}
}
}
printf("%d", p);
if(p != -1){
scanf("%d", &n);
nr = 0;
for(int k = 0; k < n; k++){
if(sir[k] == p){
nr++;
}
}
printf(" %d", nr);
}
return 0;
}