Cod sursa(job #2616504)

Utilizator VladC78Constantinescu Vlad VladC78 Data 18 mai 2020 18:32:57
Problema Elementul majoritar Scor 100
Compilator c-64 Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
#include <stdlib.h>
int v[1000000];

int main()
{
    int n, i, candidat, nr = 1, a = -1;
    FILE *in, *out;
    in = fopen("elmaj.in", "r");
    out = fopen("elmaj.out", "w");
    fscanf(in, "%d", &n);
    fscanf(in, "%d", &v[0]);
    candidat=v[0];
    for(i = 1; i < n; i++){
        fscanf(in, "%d", &v[i]);
        if(v[i] == candidat){
            nr++;
        }
        else {
            nr--;
        }
        if(nr == 0){
            candidat = v[i];
            nr = 1;
        }
    }
    nr = 0;

    for(i = 0; i < n; i++){
        if(v[i] == candidat){
            nr++;
        }
    }
    fclose(in);
    if(nr >= n/2 + 1){
    fprintf(out, "%d %d", candidat, nr);
    }
    else {
        fprintf(out, "%d", a);
    }
    fclose(out);
    return 0;
}