Cod sursa(job #1729764)

Utilizator RRomaniucRomaniuc Radu Andrei RRomaniuc Data 15 iulie 2016 16:28:55
Problema Elementul majoritar Scor 80
Compilator cpp Status done
Runda Arhiva educationala Marime 0.81 kb
#include <stdio.h>
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;
    
    for(i = 2; i <= n; i++)
    {
        fscanf(inputFile, "%d", &x);
        
        if(x == maxi) cnt++;
        else if(x != maxi && cnt > 0) cnt--;
        else if(x != maxi && cnt == 0)
        {
            maxi = x;
            cnt = 1;
        }
    }
    
    rewind(inputFile);
    
    fscanf(inputFile, "%d", &n);
    
    cnt = 0;
    
    for(i = 1; i <= n; i++)
    {
        fscanf(inputFile, "%d", &x);
        if(x == maxi) cnt++;
    }
    
    if(cnt >= n/2 +1)fprintf(outputFile, "%d %d", maxi, cnt);
    else fprintf(outputFile, "-1");
    
    return 0;
}