Cod sursa(job #480382)

Utilizator mottyMatei-Dan Epure motty Data 27 august 2010 16:23:00
Problema Congr Scor 0
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.8 kb
#include<stdio.h>
#include<time.h>
#include<stdlib.h>

const int N=600006;

int n, v[N], lim, m[N], num[N];

void Read()
{
	scanf("%d",&n);
	for( int i=1; i<n*2; ++i)
	{
		scanf("%d",&v[i]);
		v[i]%=n;
	}
}

void Initialise()
{
	for( int i=1; i<n*2; ++i)
		m[i]=i;
	lim=n*2;
}

void Solve()
{
	srand(time(0));
	int aux, sum;
	while(1)
	{
		Initialise();
		sum=0;
		for( int i=1; i<n; ++i)
		{
			aux=(rand()%(lim-1))+1;
			sum= (sum+v[m[aux]])%n;
			m[aux]=--lim;
			num[i]=aux;
		}
		for( int i=1; i<lim; ++i)
			if( (sum+v[m[i]])%n==0 )
			{
				for( int j=1 ;j<n; ++j)
					printf("%d ",num[j]);
				printf("%d\n",m[i]);
				exit(0);
			}
	}
}

int main()
{
	freopen("congr.in","r",stdin);
	freopen("congr.out","w",stdout);
	
	Read();
	Solve();
	
	return 0;
}