Cod sursa(job #1309220)

Utilizator radu_cebotariRadu Cebotari radu_cebotari Data 5 ianuarie 2015 16:09:26
Problema Congr Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.92 kb
#include<cstdio>
#include<cstdlib>
#include<time.h>
using namespace std;
const int NMAX = 300000;

int n,v[2*NMAX+10],poz[2*NMAX+10];
long long sum;

void read()
{

    scanf("%d",&n);
    for(int i = 1 ; i < 2*n ; i++){
        scanf("%d",&v[i]);
        poz[i] = i;
        if(i <= n)
            sum += v[i];
    }
}

void swap(int &a,int &b)
{

    int aux = a;
    a = b;
    b = aux;
}

void solve()
{

    srand(time(NULL));
    int i,j;
    while(sum % n){
        i = 1 + (rand()%n);
        j = n + 1 + (rand()%n);
        if(j == 2*n)
            --j;
        sum = sum - v[i] + v[j];
        swap(v[i],v[j]);
        swap(poz[i],poz[j]);
    }

}

void afis()
{

    for(int i = 1;  i <= n ; i++)
        printf("%d ",poz[i]);
}

int main()
{

    freopen("congr.in","r",stdin);
    freopen("congr.out","w",stdout);
    read();
    solve();
    afis();
    return 0;
}