Cod sursa(job #992757)
| Utilizator | Data | 2 septembrie 2013 15:53:26 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 0 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.54 kb |
#include <fstream>
#include <vector>
int main(){
std::ifstream fin("elmaj.in");
std::ofstream fout("elmaj.out");
unsigned n;
fin>>n;
std::vector<unsigned> vec(n);
for(unsigned i=0;i<n;++i) fin>>vec[i];
unsigned curr=0,k=0;
for(unsigned i=0;i<n;++i)
if(k==0){
curr=vec[i];
k=1;
}
else if(vec[i]==curr) ++k;
else --k;
k=0;
for(unsigned i=0;i<n;++i) if(vec[i]==curr) ++k;
if(k>n/2) fout<<curr<<'\n';
else fout<<"-1\n";
}
