Cod sursa(job #1105556)
Utilizator | Data | 11 februarie 2014 21:11:48 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.61 kb |
#include<stdio.h>
using namespace std;
int v[1000005];
int main()
{
int i,n,k=0,actual=-1;
freopen("elmaj.in","r",stdin);
scanf("%d",&n);
for(i=1;i<=n;++i){
scanf("%d",&v[i]);
if(k==0){
actual=v[i];k++;
}
else if(v[i]==actual) k++;
else k--;
}
fclose(stdin);
freopen("elmaj.out","w",stdout);
if(!k) printf("-1");
else{
k=0;
for(i=1;i<=n;++i)
if(actual==v[i]) k++;
if(k>=n/2+1) printf("%d %d",actual,k);
else printf("-1");
}
fclose(stdout);
return 0;
}