Cod sursa(job #2215618)

Utilizator teodorescunicolasteodorescu nicolas alexandru teodorescunicolas Data 22 iunie 2018 20:11:00
Problema Elementul majoritar Scor 0
Compilator c Status done
Runda Arhiva educationala Marime 0.72 kb
#include <stdio.h>

int v[1000000];
int main() {
    int n,i,nr,maj;
    FILE *fin;
    FILE *fout;
    fin=fopen("majoritar.in","r");
    fscanf(fin,"%d",&n);
    fscanf(fin,"%d",&v[0]);
    maj=v[0];
    nr=1;
    for (i=1; i<n; i++) {
        fscanf(fin,"%d",&v[i]);
        if (v[i]==maj)
            nr++;
        else {
            nr--;
            if (nr<0) {
                maj=v[i];
                nr=1;
            }
        }
    }
    fclose(fin);
    nr=0;
    for (i=0; i<n; i++)
        if (v[i]==maj)
            nr++;
    fout=fopen("majoritar.out","w");
    if (nr>n/2)
        fprintf(fout,"%d %d\n",maj,nr);
    else
        fprintf(fout,"-1\n");
    fclose(fout);
    return 0;
}