Cod sursa(job #1729766)

Utilizator RRomaniucRomaniuc Radu Andrei RRomaniuc Data 15 iulie 2016 16:32:17
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.75 kb
#include <stdio.h>
int v[1000001] = {0};
int main()
{
    FILE *inputFile = fopen("elmaj.in", "r"), *outputFile = fopen("elmaj.out", "w");
    
    int n, maxi, cnt, i, x;
    
    fscanf(inputFile, "%d", &n);
    
    fscanf(inputFile, "%d", &x); cnt = 1; maxi = x; v[1] = x;
    
    for(i = 2; i <= n; i++)
    {
        fscanf(inputFile, "%d", v + i);
        
        if(v[i] == maxi) cnt++;
        else if(v[i] != maxi && cnt > 0) cnt--;
        else if(v[i] != maxi && cnt == 0)
        {
            maxi = v[i];
            cnt = 1;
        }
    }
    
    cnt = 0;
    
    for(i = 1; i <= n; i++)
        if(v[i] == maxi) cnt++;
    
    
    if(cnt >= n/2 +1)fprintf(outputFile, "%d %d", maxi, cnt);
    else fprintf(outputFile, "-1");
    
    return 0;
}