Pagini recente » Cod sursa (job #1097228) | Cod sursa (job #2456912) | Cod sursa (job #1540656) | Cod sursa (job #1300618) | Cod sursa (job #1151144)
#include<stdio.h>
#include<ctime>
#include<cstdlib>
#define pmax 300005
using namespace std;
int i, n, x, p, sum, p1, p2, aux, v[2*pmax], a[2*pmax];
int main()
{
freopen("congr.in","r",stdin);
freopen("congr.out","w",stdout);
srand(time(0));
scanf("%ld",&p);
n=2*p-1;
for (i=1;i<=n;i++)
{
scanf("%ld",&x);
v[i]=x%p;
if (i<=p)
{
sum+=v[i];
if (sum>=p)
sum-=p;
}
a[i]=i;
}
while (sum)
{
p1=rand()%p*rand()%p+1;
p2=rand()%p*rand()%p+p+1;
if(p2>n)
p2=n;
aux=a[p1]; a[p1]=a[p2]; a[p2]=aux;
sum+=v[a[p1]];
sum-=v[a[p2]];
if(sum<0)
sum+=p;
if (sum>=p)
sum-=p;
}
for (i=1;i<=p;i++)
printf("%ld ",a[i]);
return 0;
}