Cod sursa(job #1149656)

Utilizator cosmin.pascaruPascaru Cosmin cosmin.pascaru Data 22 martie 2014 10:20:11
Problema Congr Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.93 kb
#include <cstdio>
#include <cstdlib>
#include <ctime>
#include <algorithm>

using namespace std;

int p, sum;
int v[600005];
int poz[600005];

int random2();
void schimba(int, int);

int main()
{
    freopen("congr.in", "r", stdin);
    freopen("congr.out", "w", stdout);
    scanf("%d",&p);
    for (int i = 1; i <= p; ++i)
    {
        scanf("%d", &v[i]);
        poz[i] = i;
        sum += v[i];
    }
    for (int i = p+1; i < (p<<1); ++i)
    {
        scanf("%d", &v[i]);
        poz[i] = i;
    }
    int i, j;
    while (sum % p)
    {
        i = random2() % p + 1;
        j = random2() % p + 1;
        schimba(i, j);
    }

    for (i = 1; i <= p; ++i)
        printf("%d ",poz[i]);
    return 0;
}
void schimba (int i, int j)
{
    swap(poz[i], poz[j]);
    swap(v[i], v[j]);
    sum += v[i] - v[j];
}

int random2()
{
    return ((rand()*rand())%9901) * (rand() % 11399) + rand() %2;
}