Cod sursa(job #634147)
Utilizator | Titus C titusu | Data | 15 noiembrie 2011 18:47:52 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <fstream>
using namespace std;
int v[1000005],n;
int main(){
ifstream fin("elmaj.in");
fin >> n;
for(int i=1;i<=n;++i)
fin >> v[i];
fin.close();
int elmaj=v[1],nrap=1;
for(int i=2;i<=n;++i)
if(v[i]==elmaj)
nrap ++;
else{
nrap --;
if(nrap == 0)
elmaj = v[i], nrap = 1;
}
int count = 0;
for(int i=1;i<=n;++i)
if(v[i]==elmaj)
count++;
ofstream fout("elmaj.out");
if(count > n/2)
fout << elmaj << " " << count << "\n";
else
fout << "-1\n";
return 0;
}