Cod sursa(job #944519)

Utilizator bugyBogdan Vlad bugy Data 28 aprilie 2013 21:51:13
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.78 kb
#include<stdio.h>
#define dim 1000005
//#include "stiva.h"

class stiva
{
public:
	int nr_val,val;
	
	void push(int x)
	{
		if(x == val)
		{
			nr_val ++;
		}
		else if( nr_val > 1)
		{
			nr_val --;
		}
		else
		{
			nr_val = 1;
			val = x;
		}	
	}

	int element_maj()  
	{
		return this->val;
	}
	
	void init()
	{
		nr_val = val = -1;
	}
	
};

int main()
{
	int N,i,v[dim],x,nr=0;
	
	FILE *f,*g;
	
	f = fopen("elmaj.in","r");
	g = fopen("elmaj.out","w");  
	
	fscanf(f,"%d",&N);  
	
	stiva S;
	S.init();
	
	for(i=1; i<=N; i++)
	{
		fscanf(f,"%d",&x);
		S.push(x);
		v[i] = x;
	}
	
	x = S.element_maj();
	
	for(i=1; i<=N; i++)
		if(v[i] == x)
			nr++;
	fprintf(g,"%d %d\n",x,nr);
	
fclose(f);
fclose(g);
	
	


return 0;
}