Cod sursa(job #514631)

Utilizator tamas_iuliaTamas Iulia tamas_iulia Data 19 decembrie 2010 12:04:51
Problema Congr Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <stdio.h>
#include <stdlib.h>
#include <ctime>
#include <algorithm>
#define Nmax 300002

using namespace std;

int A[Nmax*2],ind[Nmax*2];
int P,sum;

int main(){
    int i,poz1,poz2;
    freopen("congr.in","r",stdin);
    freopen("congr.out","w",stdout);
    scanf("%d",&P);
    for(i=1;i<2*P;++i) scanf("%d",&A[i]),ind[i]=i;
    for(i=1;i<=P;++i){
         sum=(sum+A[i])%P;
    }

    srand(time(NULL));
    while( sum ){
        poz1=rand()%P+1;
        poz2=P+rand()%(P-1)+1;
        sum=(sum+A[ind[poz2]]-A[ind[poz1]])%P;
        if(sum<0) sum+=P;
        swap(ind[poz1],ind[poz2]);
    }

    for(i=1;i<=P;++i)
            printf("%d ",ind[i]);
    fclose(stdin); fclose(stdout);
    return 0;
}