Cod sursa(job #769345)

Utilizator harababurelPuscas Sergiu harababurel Data 19 iulie 2012 00:11:39
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.83 kb
#include <iostream>
#include <fstream>
#define nmax 1000005
using namespace std;
bool verif(int cand) {
	if(cand < 0) return false;
	return true;
}
int v[nmax];
int main() {
	ifstream f("elmaj.in");
	ofstream g("elmaj.out");
	
	int n, i, j, cand=-1, necuplati=0;
	
	f>>n;
	for(i=1; i<=n; i++) {
		f>>v[i];
		
		if(necuplati==0) {
			cand = v[i];	//daca nu am canditati necuplati, atunci il marchez pe cel curent ca fiind necuplat
			necuplati=1;
		}
		else if(v[i]==cand) {	//daca am gasit un candidat identic cu unul necuplat
			necuplati++;
		}
		else {					//daca am gasit un candidat diferit, ii cuplez
			necuplati--;
		}
		
	}
	
	if(!verif(cand)) { g<<"-1\n"; }
	else {
		j=0;
		for(i=1; i<=n; i++) {
			if(v[i]==cand) j++;
		}
		g<<cand<<" "<<j<<"\n";
	}
	
	f.close();
	g.close();
	return 0;
}