Cod sursa(job #2259670)

Utilizator Pop_EmilPal Tamas Pop_Emil Data 13 octombrie 2018 16:47:44
Problema Elementul majoritar Scor 100
Compilator cpp-64 Status done
Runda Arhiva educationala Marime 0.86 kb
#include <iostream>
#include <stdio.h>

using namespace std;

FILE *in = fopen("elmaj.in","r");
FILE *out = fopen("elmaj.out", "w");

int N;
unsigned int v[1000005];

int main()
{
    /* Read (indexed from 1)*/
    fscanf(in, "%d", &N);
    for(int i=1; i<=N; ++i)
    {
        fscanf(in, "%u", &v[i]);
    }

    /* Algorithm */
    int i = 0, j = 1;

    while(j<=N)
    {
        if(v[j] != v[i+1])
        {
            i=i+2;
            std::swap(v[j], v[i]);
        }
        ++j;
    }

    if(i == N)
    {
        fprintf(out, "-1");
    }
    else
    {
        int s = 0;
        for(int k=1; k<=N; ++k)
            if(v[k] == v[i+1])
                ++s;

        if(s > N/2)
        {
            fprintf(out, "%d %d", v[i+1], s);
        }
        else
            fprintf(out, "-1");
    }

    return 0;
}