Cod sursa(job #1100602)
Utilizator | Data | 7 februarie 2014 08:56:23 | |
---|---|---|---|
Problema | Elementul majoritar | Scor | 20 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.77 kb |
#include<fstream>
using namespace std;
int v[100];
int main()
{
int i,x,n,maj,nrmaj;
FILE *fin,*fout;
fin=fopen("elmaj.in","r");
fout=fopen("elmaj.out","w");
fscanf(fin,"%d",&n);
for(i=1;i<=n;i++)
fscanf(fin,"%d",&v[i]);
maj=v[1];
nrmaj=1;
for(i=2;i<=n;i++)
{
if(maj==v[i])
nrmaj++;
else
{
nrmaj--;
if(nrmaj<0)
{
maj=v[i];
nrmaj=1;
}
}
}
x=0;
if(nrmaj!=0)
{
for(i=1;i<=n;i++)
if(v[i]==maj)
x++;
if(x>=n/2+1)
fprintf(fout,"%d %d",maj,x);
else
fprintf(fout,"-1");
}
return 0;
}