Cod sursa(job #2216538)

Utilizator Dobricean_IoanDobricean Ionut Dobricean_Ioan Data 27 iunie 2018 10:32:13
Problema Elementul majoritar Scor 20
Compilator cpp Status done
Runda Arhiva educationala Marime 0.84 kb
#include <cstdio>

using namespace std;

const int Dim = 1000001;
int cnt,elmaj,x,n;
void Get (int &x);
int main() {
	
	freopen("elmaj.in","r",stdin);
	freopen("elmaj.out","w",stdout);
	Get(n);
	for ( int i = 1; i <= n; ++i) {
		Get(x);
		if ( cnt == 0) {
			elmaj = x;
			cnt = 1;
			}
		else
			{ if ( x == elmaj)
					++cnt;
			else
					--cnt;
			}
 		}
 	freopen("elmaj.in","r",stdin);
 	Get(n);
	cnt = 0;
 	for ( int i = 1; i <= n; ++i) {
		Get(x);
		if ( x == elmaj)
			++cnt;
		}
	if ( cnt > n / 2)
		printf("%d %d",elmaj,cnt);
	else
		printf("-1");
}

const int Lim = 1000;
int u =  Lim - 1;
char s[Lim];
 
void Next () {
    if (++u == Lim)
        std::fread(s, 1, Lim, stdin), u = 0;
}
 
void Get (int &x) {
    for (; s[u] < '0' || s[u] > '9'; Next());
    for (x = 0; s[u] >= '0' && s[u] <= '9'; Next())
           x = x * 10 + s[u] - '0';
}