Pagini recente » Cod sursa (job #1452289) | Cod sursa (job #2037537) | Cod sursa (job #1188110) | Cod sursa (job #892471) | Cod sursa (job #477048)
Cod sursa(job #477048)
#include<stdio.h>
#include<time.h>
#include<stdlib.h>
#define Nmax 300010
int V[Nmax<<1], In[Nmax], Out[Nmax], r1, r2, i, n, P, S;
void swap (int i, int j)
{
int aux = In[i]; In[i] = Out[j]; Out[j]=aux;
}
int main()
{
srand(time(0));
freopen("congr.in","r",stdin);
freopen("congr.out","w",stdout);
scanf("%d",&P);
n = (P<<1) - 1;
for(i=1;i<=n;i++)
scanf("%d",&V[i]);
for(i=1;i<=P;i++)
{
In[i]=i;
Out[i] = i+P;
S+=V[i];
if(S>=P) S%=P;
}
while( S )
{
r1 = 1+ rand() % P;
r2 = 1+ rand() % (P-1);
S+=P;
S-=(V[In[r1]]%P);
S+=(V[Out[r2]]%P);
if(S>=P) S%=P;
swap(r1,r2);
}
for(i=1;i<=P;i++)
printf("%d ",In[i]);
return 0;
}