Pagini recente » Cod sursa (job #838488) | Cod sursa (job #1110938) | Cod sursa (job #1081058) | Cod sursa (job #1894409) | Cod sursa (job #2218757)
#include <stdio.h>
#include <stdlib.h>
int v[2000001] ;
int main()
{
FILE *fin, *fout ;
fin = fopen ("majoritar.in", "r" ) ;
fout = fopen ("majoritar.out", "w" ) ;
int contor, n, i, majoritar, element ;
fscanf (fin, "%d%d", &n, &majoritar ) ;
contor = 1 ;
v[0] = majoritar ; /// Primul element majoritar este primul element din vector
for (i = 1 ; i < n ; i++ ) {
fscanf (fin, "%d", &element ) ;
v[i] = element ;
if (element != majoritar ) { /// Daca este element majoritar
contor--;
if (contor < 0 ) { /// Daca contorul e negativ, luam noul element majoritar
majoritar = element ;
contor = 1 ;
}
}
else
contor++;
}
if (contor > 0 ) { /// Se face proba rezultatului
contor = 0 ;
for (i = 0 ; i < n ; i++ )
if (v[i] == majoritar )
contor++;
if (contor >= n/2+1) /// Daca este element majoritar
fprintf (fout, "%d %d", majoritar, contor ) ;
else
fprintf (fout, "-1" ) ;
}
else
fprintf (fout, "-1" ) ;
return 0;
}