Cod sursa(job #1812370)

Utilizator TincaMateiTinca Matei TincaMatei Data 21 noiembrie 2016 23:57:25
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.6 kb
#include <cstdio>

const int MAX_N = 1000000;
int v[MAX_N];

int main() {
  int n, cand, nr;
  FILE *fin = fopen("elmaj.in", "r");
  fscanf(fin, "%d%d", &n, &v[0]);
  cand = v[0];
  nr = 1;
  for(int i = 1; i < n; ++i) {
    fscanf(fin, "%d", &v[i]);
    if(v[i] == cand)
      nr++;
    else
      nr--;
    if(nr < 0) {
      cand = v[i];
      nr = 1;
    }
  }
  fclose(fin);

  nr = 0;
  for(int i = 0; i < n; ++i)
    if(v[i] == cand)
      nr++;

  FILE *fout = fopen("elmaj.out", "w");
  if(nr > n / 2)
    fprintf(fout, "%d %d", cand, nr);
  else
    fprintf(fout, "-1");
  fclose(fout);
  return 0;
}