Cod sursa(job #2986090)

Utilizator gabrielinelusGabriel-Robert Inelus gabrielinelus Data 27 februarie 2023 18:26:49
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.8 kb
#include <cstdio>
#include <vector>

using namespace std;

int main() {
  freopen("elmaj.in", "r", stdin);
  freopen("elmaj.out", "w", stdout);

  int N;
  scanf("%d", &N);

  if (N == 1) {
    int x;
    scanf("%d", &x);
    printf("%d\n", x);
    return 0;
  }

  int candidate;
  int cnt = 1;
  int value;

  scanf("%d", &candidate);
  for (int i = 1; i < N; ++i) {
    scanf("%d", &value);
    if (value == candidate)
      ++cnt;
    else
      --cnt;

    if (cnt == 0) {
      candidate = value;
      cnt = 1;
    }
  }

  fclose(stdin);
  freopen("elmaj.in", "r", stdin);
  scanf("%d", &N);

  cnt = 0;
  for (int i = 0; i < N; ++i) {
    scanf("%d", &value);
    if (candidate == value)
      ++cnt;
  }
  if (cnt >= N / 2 + 1)
    printf("%d %d\n", candidate, cnt);
  else
    printf("-1\n");
  
  return 0;
}