Cod sursa(job #2459169)
Utilizator | Gabriel-Ciprian Stanciu eiler | Data | 22 septembrie 2019 11:29:02 |
---|---|---|---|
Problema | Elementul majoritar | Scor | 100 |
Compilator | cpp-64 | Status | done |
Runda | Arhiva educationala | Marime | 0.53 kb |
#include <fstream>
using namespace std;
int n, v[1000000];
int main(){
ifstream fin ("elmaj.in");
fin >> n;
for (int i=0; i<n; i++)
fin >> v[i];
fin.close();
int el, ap;
el=-1; ap=0;
for (int i=0; i<n; i++){
if (ap==0){
el=v[i];
ap=1;
}
else if (v[i]==el)
ap++;
else
ap--;
}
ap=0;
for (int i=0; i<n; i++)
if (v[i]==el)
ap++;
if (ap<=n/2)
el=-1;
ofstream fout ("elmaj.out");
fout << el;
if (el!=-1)
fout << ' ' << ap;
fout.close();
return 0;
}