Mai intai trebuie sa te autentifici.

Cod sursa(job #644908)

Utilizator lavinia_nLavinia Nastase lavinia_n Data 7 decembrie 2011 19:52:49
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include<stdio.h>
#include<stdlib.h>
#include<iostream>
#include<fstream>
using namespace std; 

long maj(long n,long *a,long *nr) {
    long x=-1,k=0,i;
    for (i=0;i<n;i++) {
        if (!k) {
           x=a[i];
           k=1;
        } else
			k+=(a[i]==x)?1:-1;
    }
    if(x<0)
		return x;
    for(i=0;i<n;i++)
        if(a[i]==x)
			(*nr)++;
	return ((*nr)>n/2)?x:-1;
}

int main(){
long i,n,nr=0,*v;
ifstream in("elmaj.in");
in>>n;
// aloca dinamic memoria pentru sortare
v=(long *)malloc(n*sizeof(long));
// citeste elementele vectorului din elmaj.in
for(i=0;i<n;i++)
	in>>v[i];
in.close();
ofstream out("elmaj.out");
// cauta elementul majoritar si scrie in elmaj.out
i=maj(n,v,&nr);
out<<i;
if(i>0)
	out<<" "<<nr;
out<<endl;
out.close();
return 0;
}