Cod sursa(job #2509627)

Utilizator MihaiZ777MihaiZ MihaiZ777 Data 14 decembrie 2019 13:53:24
Problema Elementul majoritar Scor 90
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.71 kb
#include <stdio.h>

int main()
{
  FILE *fin, *fout;
  fin = fopen("elmaj.in", "r");
  fout = fopen("elmaj.out","w");

  int n;
  fscanf(fin, "%d", &n);
  int v[n];

  for(int i = 0; i < n; i++)
    fscanf(fin, "%d", &v[i]);

  int num = -1;
  int appear = 0;

  for(int i = 0; i < n; i++)
  {
    if(v[i] == num)
      appear++;
    else if(appear >= 0)
      appear--;
    else 
    {
      num = v[i];
      appear = 1;
    } 
  }  

  appear = 0;
  int a = 0;
  for(int i = 0; i < n; i++)
  {
    a++;
    if(v[i] == num)
      appear++;
  }

  if(appear < a / 2 + 1)
  {
    fprintf(fout, "%d", -1);
    fclose(fin);
    fclose(fout);
    return 0;
  }

  fprintf(fout, "%d %d", num, appear);
  fclose(fin);
  fclose(fout);

}