Cod sursa(job #609162)

Utilizator a_h1926Heidelbacher Andrei a_h1926 Data 19 august 2011 19:29:50
Problema Congr Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.03 kb
#include <iostream>
#include <vector>
#include <cstdlib>

#define PMax 300005

using namespace std;

vector <int> Chosen;
vector <int> Remained;
int P, V[PMax], Sum;

int main()
{
    freopen ("congr.in", "r", stdin);
    freopen ("congr.out", "w", stdout);
    srand (time (0));
    scanf ("%d", &P);
    for (int i=1; i<P+P; ++i)
    {
        scanf ("%d", &V[i]);
        Remained.push_back (i);
    }
    for (int i=1; i<=P; ++i)
    {
        int k=rand ()%Remained.size ();
        Chosen.push_back (Remained[k]);
        Sum+=V[Remained[k]];
        Remained[k]=Remained[Remained.size ()-1];
        Remained.pop_back ();
    }
    while (Sum%P!=0)
    {
        int k=rand ()%Remained.size ();
        int e=rand ()%Chosen.size ();
        int aux=Chosen[e];
        Sum-=V[aux];
        Chosen[e]=Remained[k];
        Sum+=V[Chosen[e]];
        Remained[k]=aux;
    }
    for (unsigned i=0; i<Chosen.size (); ++i)
    {
        printf ("%d ", V[Chosen[i]]);
    }
    printf ("\n");
    return 0;
}