Cod sursa(job #878015)

Utilizator RusuDRusu Daniel RusuD Data 13 februarie 2013 19:00:51
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.55 kb
#include <stdio.h>
using namespace std;
int n,i,st[1000001],v[1000001],nr;
int main()
{FILE *fin=fopen("elmaj.in","r");
 FILE *fout=fopen("elmaj.out","w");
 fscanf(fin,"%d",&n);
 for(i=1;i<=n;i++)
  {fscanf(fin,"%d",&v[i]);
   if(st[st[0]]!=v[i] &&st[0]!=0) st[0]--;
   else {st[0]++;st[st[0]]=v[i];}
  }
 if(st[0]==0) fprintf(fout,"-1\n");
 else
  {nr=0;
   for(i=1;i<=n;i++)
    if(v[i]==st[st[0]]) nr++;
   if(nr>=n/2+1) fprintf(fout,"%d %d\n",st[st[0]],nr);
   else fprintf(fout,"-1\n");
  }
 fclose(fin);fclose(fout);
 return 0;
}