Cod sursa(job #1034884)

Utilizator AndreeaBaltaBalta Andreea Cristina AndreeaBalta Data 18 noiembrie 2013 09:49:42
Problema Elementul majoritar Scor 100
Compilator cpp Status done
Runda Arhiva educationala Marime 0.74 kb
#include <stdio.h>

using namespace std;
int v[1000002],r;
int main() {
    FILE *IN,*OUT;
    IN = fopen("elmaj.in","r");
    OUT = fopen("elmaj.out","w");
    int n,i,maj;
    fscanf(IN,"%d", &n);
    fscanf(IN,"%d", &v[1]);
    r = 1;
    maj = v[1];
    for(i = 2; i <= n; i++) {
        fscanf(IN,"%d", &v[i]);
        if(v[i] == maj)
            r++;
        else {
            r--;
            if(r==0)
            {
                maj = v[i];
                r = 1;
            }
        }

    }
    int ap = 0;
    for(i = 1; i <= n; i++)
    {
        if(v[i] == maj)
            ap++;
    }
    if(ap >= (n/2 + 1))
        fprintf(OUT,"%d %d",maj,ap);
    else
        fprintf(OUT,"-1");
    return 0;
}