Cod sursa(job #1801865)

Utilizator andrei_diaconu11Andrei C. Diaconu andrei_diaconu11 Data 9 noiembrie 2016 17:59:19
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.59 kb
#include <stdio.h>

int v[1000000];

int main()
{
    int n, x, k, i, nr;
    FILE *fi=fopen("elmaj.in", "r"), *fo=fopen("elmaj.out", "w");
    fscanf(fi, "%d", &n);
    x=-1;
    k=0;
    for(i=0;i<n;i++){
        fscanf(fi, "%d", &v[i]);
        if(k==0){
            x=v[i];
            k=1;
        }
        else if(v[i]!=x)
            k--;
        else if(v[i]==x)
            k++;
    }
    nr=0;
    for(i=0;i<n;i++)
        if(v[i]==x)
            nr++;
    if(nr>n/2)
        fprintf(fo, "%d %d", x, nr);
    else
        fprintf(fo, "-1");
    fclose(fi);
    fclose(fo);
    return 0;
}