Pagini recente » Cod sursa (job #1341519) | Cod sursa (job #755295) | Borderou de evaluare (job #2487130) | Cod sursa (job #748568) | Cod sursa (job #1262043)
#include <iostream>
#include <fstream>
// gasirea elementului majoritar ( >n/2) dintr-un vector nesortat
using namespace std;
int main()
{
long int n,nr_aparitii=0, contor=1,el_maj,i,v[100000],max_aparitii=1;
ifstream f("elmaj.in",ios::in);
ofstream g("elmaj.out",ios::out);
f>>n;
for(i=1;i<=n;i++){
f>>v[i];
}
for(i=1;i<=n;i++){
if(v[i]==v[max_aparitii])
contor++;
else
contor--;
if(contor==0){
max_aparitii=i;
contor=1;
}
}
for(i=1;i<=n;i++)
if(v[i]==v[max_aparitii])
nr_aparitii++;
if(nr_aparitii>=n/2+1){
g<<v[max_aparitii]<<" "<<nr_aparitii;
}
else{
g<<"-1";
}
return 0;
}