Cod sursa(job #844540)

Utilizator SebiSebiPirtoaca George Sebastian SebiSebi Data 29 decembrie 2012 14:48:00
Problema Congr Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.63 kb
#include<iostream>
#include<fstream>
#include<time.h>
#include<stdlib.h>
using namespace std;

#define NMAX 600000

int v[NMAX],p[NMAX],d[NMAX];

int main ()
{
	int n,i,x,y,s;
	ifstream f("congr.in");
	ofstream g("congr.out");
	f>>n;
	for(i=1;i<=2*n-1;i++)
		f>>v[i];
	f.close();
	s=0;
	for(i=1;i<=n;i++) {
		s=(s+v[i])%n;
		p[i]=i;
		d[i]=1;
	}
	srand(time(NULL));
	while(s%n) {
		x=rand()%(n)+1;
		while(d[x]==0)
			x=rand()%(n)+1;
		y=rand()%(2*n-1)+1;
		while(d[y]==1)
			y=rand()%(2*n-1)+1;
		s=(s-v[p[x]]+n)%n;
		s=(s+v[y])%n;
		p[x]=y;
	}
	for(i=1;i<=n;i++)
		g<<p[i]<<" ";
	g.close();
	return 0;
}