Pagini recente » Cod sursa (job #2602158) | Cod sursa (job #851985) | Cod sursa (job #2218072) | Cod sursa (job #901882) | Cod sursa (job #906335)
Cod sursa(job #906335)
#include<cstdio>
using namespace std;
FILE *in,*out;
int v[1000000];
int pretendent(int n){
int i,nrc=v[1],ap=1;
for(i=2;i<=n;i++){
if(v[i]!=nrc && ap>0) ap--;
else if(v[i]==nrc) ap++;
else if(v[i]!=nrc && ap==0){
ap=1;
nrc=v[i];
}
}
if(ap>0)
return nrc;
return -1;
}
int main(){
in=fopen("elmaj.in","r");
out=fopen("elmaj.out","w");
int n;
fscanf(in,"%d",&n);
int i;
for(i=1;i<=n;i++) fscanf(in,"%d",&v[i]);
fclose(in);
int pret;
pret=pretendent(n);
if(pret==-1){
fprintf(out,"%d",pret);
fclose(out);
return 0;
}
int ap=0;
for(i=1;i<=n;i++)
if(v[i]==pret)
++ap;
if(ap>n/2)
fprintf(out,"%d %d",pret,ap);
else fprintf(out,"%d",pret);
fclose(out);
return 0;
}