Cod sursa(job #1006815)

Utilizator nnnmmmcioltan alex nnnmmm Data 7 octombrie 2013 19:59:55
Problema Elementul majoritar Scor 100
Compilator c Status done
Runda Arhiva educationala Marime 0.58 kb
#include<stdio.h>
int n,i,v[3000001],nr,a,cnr;
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]);
     }
 a=v[1];
 cnr=0;
 for(i=1;i<=n;i++)
     {
      if(v[i]!=a)
         nr--;
      else
         {
          nr++;
         }
      if(nr<0)
         {
          a=v[i];
          nr++;
         }
     }
 for(i=1;i<=n;i++)
     if(v[i]==a)
        cnr++;
 if(cnr>=n/2+1)
    fprintf(fout,"%d %d",a,cnr);
 else
    fprintf(fout,"-1");
return 0;
}