Pagini recente » Monitorul de evaluare | Cod sursa (job #1259333) | Cod sursa (job #953631) | Cod sursa (job #2940919) | Cod sursa (job #865798)
Cod sursa(job #865798)
#include <stdio.h>
int v[1000000];
int v_len = 0;
int main()
{
FILE *fin = fopen("elmaj.in", "r");
FILE *fout = fopen("elmaj.out", "w");
int i;
fscanf(fin, "%d", &v_len);
for (i = 0; i < v_len ; i++) {
fscanf(fin, "%d", &v[i]);
}
int current_candidate = -1, current_tally = 0;
for (i = 0; i < v_len; i++) {
if ( current_tally == 0 ) {
current_candidate = v[i];
current_tally = 1;
}
else {
if (v[i] == current_candidate)
current_tally++;
else
current_tally--;
}
}
int final_tally = 0;
for (i = 0; i < v_len; i++)
if (v[i] == current_candidate)
final_tally++;
if (final_tally > v_len/2)
fprintf(fout, "%d %d\n", current_candidate, final_tally);
else
fprintf(fout, "-1\n");
fclose(fin);
fclose(fout);
return 0;
}