Cod sursa(job #1149642)

Utilizator marta_diannaFII Filimon Marta Diana marta_dianna Data 22 martie 2014 10:11:49
Problema Congr Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.77 kb
#include<fstream>
#include<cstdlib>
#include<ctime>
#define MOD 150000
#define NMAX 600010

using namespace std;

ifstream f("congr.in");
ofstream g("congr.out");

int n, a[NMAX], pz[NMAX], i, pz1, pz2, sum=0, z;

int main()
{
    srand(time(NULL));

    f>>n;
    for (i=1; i<n*2; ++i)
    {
        f>>a[i]; pz[i]=i;
        if (i<=n) sum=(sum+a[i])%n;
    }

    while (sum)
    {
        z=rand();
        z=(z*z)%n;
        pz1=z+1;
        z=rand();
        z=n+(z*z)%n;
        pz2=z;

        sum-=a[pz1];
        swap(a[pz1], a[pz2]);
        swap(pz[pz1], pz[pz2]);
        sum+=a[pz2];

        if (sum>0) sum%=n;
        else sum+=n;

    }
    for (i=1; i<=n; ++i) g<<pz[i]<<" ";
    f.close();
    g.close();
    return 0;
}