Cod sursa(job #639637)

Utilizator Gaby_mMititelu Gabriel Gaby_m Data 23 noiembrie 2011 18:12:29
Problema Elementul majoritar Scor 0
Compilator cpp Status done
Runda Arhiva educationala Marime 0.68 kb
#include<cstdio>
using namespace std;

int N, elMaj, nrAp;
int main() {
	FILE *in1 = fopen("elmaj.in", "r");
	int i,x;
	fscanf(in1,"%d",&N);
	fscanf(in1,"%d",&elMaj);
	nrAp = 1;	
	for (i = 1; i < N; ++i) {
		fscanf(in1,"%d",&x);
		if (x == elMaj) nrAp++;
			else {
				nrAp--;
				if (nrAp == 0) {
						elMaj = x;
						nrAp = 1;
				}
			}	
	}
	fclose(in);
	
	FILE *in2 = fopen("elmaj.in", "r");
	nrAp = 0;
	for (i = 1; i < N; ++i) {
		fscanf(in2,"%d",&x);
		if (x == elMaj) nrAp++;
	}
	fclose(in2);
	
	FILE *out = fopen("elmaj.out", "w");
	
	if (nrAp > N/2) fprintf(out,"%d %d\n", elMaj, nrAp);
		else fprintf(out,"-1\n");
	
	fclose(out);	
	return 0;
}