Cod sursa(job #1015111)

Utilizator alex_bBinca Alexandra alex_b Data 23 octombrie 2013 21:40:50
Problema Elementul majoritar Scor 10
Compilator cpp Status done
Runda Arhiva educationala Marime 0.79 kb
#include <cstdio>
#include <vector>

using namespace std;

int main(int argc, char *argv[]) {
    freopen("elmaj.in", "r", stdin);
    freopen("elmaj.out", "w", stdout);
    
    int n;
    scanf("%i", &n);
    vector<int> v;
    for (int i = 0; i < n; ++i) {
    	int temp;
    	scanf("%i", &temp);
    	v.push_back(temp);
    }
    
    int c = 0, elmaj;
    for (int i = 0; i < n; ++i) {
    	if (c == 0) {
    		elmaj = v[i];
    		c = 1;
    	} else {
    		if (elmaj == v[i]) {
    			++c;
    		} else {
    			--c;
    		}
    	}
    }
    
    if (c == 0) {
    	printf("%i", -1);
    } else {
    	int cnt = 0;
    	for (int i = 0; i < n; ++i)
    		if (elmaj == v[i])
    			++cnt;
    	if (cnt > n /2)
    		printf("%i %i", elmaj, n / 2 + c);
  		else
  			printf("%i", -1);
  	}
    return 0;
}