Cod sursa(job #2215616)
| Utilizator | Data | 22 iunie 2018 20:05:23 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 0 |
| Compilator | c | Status | done |
| Runda | Arhiva educationala | Marime | 0.74 kb |
#include <stdio.h>
int v[30000];
int main()
{
FILE *fin;
FILE *fout;
int n,i,nr,maj;
fin=fopen("majoritar.in","r");
fscanf(fin,"%d",&n);
for (i=0;i<n;i++)
fscanf(fin,"%d",&v[i]);
fclose(fin);
maj=v[0];
nr=1;
for (i=1;i<n;i++)
if(v[i]==maj)
nr++;
else
{
nr--;
if (nr<0)
{
maj=v[i];
nr=1;
}
}
nr=0;
for (i=0;i<n;i++)
if (v[i] == maj)
nr++;
fout=fopen ("majoritar.out","w");
if (nr>n/2)
fprintf(fout,"%d %d\n",maj,nr);
else
fprintf(fout,"-1\n");
fclose(fout);
}
