Cod sursa(job #1198670)

Utilizator adrianbercaBerca Adrian adrianberca Data 16 iunie 2014 17:04:13
Problema Elementul majoritar Scor 40
Compilator c Status done
Runda Arhiva educationala Marime 0.82 kb
#include <stdio.h>
#include <stdlib.h>

int v[1000000];
int comparare(const void *a,const void *b)
    {
       return(*(const int*)a - *(const int*)b);
    }
int main()
{
    FILE *f,*g;
    f=fopen("elmaj.in","r");
    g=fopen("elmaj.out","w");
    int i=0,n,k=1,a=0,x=0,j=1;
    fscanf(f,"%d",&n);
    for(i=1;i<=n;i++)
        fscanf(f,"%d",&v[i]);
    qsort(v,n+1,sizeof(int),comparare);
    for(i=1;i<=n;i++)
    {
        if(k>=n/2+1)
            break;

        if(v[i]==v[i+1])
        {
            a=1;
            k++;
            x=v[i];
        }
        else if(k<n/2+1)
        {
            k=1;
            a=0;
        }
    }
     if(a==1)

    {
      fprintf(g,"%d\t",x);
       fprintf(g,"%d",k);
    }
    else
        fprintf(g,"-1");

fclose(f);
fclose(g);
return 0;
}