Cod sursa(job #1546390)
| Utilizator | Data | 7 decembrie 2015 23:35:13 | |
|---|---|---|---|
| Problema | Elementul majoritar | Scor | 100 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.47 kb |
#include <fstream>
#include <vector>
#include <algorithm>
using namespace std;
int main(){
ifstream f("elmaj.in");
ofstream g("elmaj.out");
int n;
f >> n;
vector<int> v(n);
for(auto& x : v){
f >> x; }
int cur = 0, nr = 0;
for(int i = 0; i < n; ++i){
if(cur == v[i]){
++nr; }
else if(nr != 0){
--nr; }
else{
cur = v[i], nr = 1; } }
int cnt = count(begin(v), end(v), cur);
if(cnt >= n/2+1){
g << cur << ' ' << cnt; }
else{
g << -1; }
return 0; }
