Pagini recente » Cod sursa (job #2957220) | Cod sursa (job #1109194) | Cod sursa (job #1826623) | Cod sursa (job #1975654) | Cod sursa (job #1641342)
#include<stdio.h>
int binary_count(int *v, char *visited, int n, int left, int right) {
if(right == left) {
if(v[right] == n) {
visited[right] = 1;
return 1;
}
return 0;
}
int middle = left + (right - left) / 2;
return binary_count(v, visited, n, left, middle) + binary_count(v, visited, n, middle + 1, right);
}
int main() {
int size, i;
FILE *fi = fopen("elmaj.in", "r");
fscanf(fi, "%d", &size);
int vect[size];
for(i = 0; i < size; i++) {
fscanf(fi, "%d", &vect[i]);
}
fclose(fi);
int majoritar = 0, counter = 0, aux_c;
char visited[size];
for(i = 0; i < size; i++) {
visited[i] = 0;
}
for(i = 0; i < size; i++) {
if(visited[i] == 1) {
continue;
}
aux_c = binary_count(vect, visited, vect[i], 0, size - 1);
if(aux_c > counter) {
counter = aux_c;
majoritar = vect[i];
}
}
FILE *fo = fopen("elmaj.out", "w");
if(counter >= (size/2 + 1)) {
fprintf(fo, "%d %d", majoritar, counter);
}
fclose(fo);
return 0;
}