Cod sursa(job #466784)

Utilizator katakunaCazacu Alexandru katakuna Data 27 iunie 2010 14:44:22
Problema Congr Scor 20
Compilator cpp Status done
Runda Stelele Informaticii 2010, clasele X-XII, Ziua 1 Marime 0.71 kb
#include <cstdio>
using namespace std;

#define Nmax 1010

int n, N, s, i, j, l, L;
int a[Nmax][Nmax], v[2 * Nmax];

int main () {
	
	freopen ("congr.in", "r", stdin);
	freopen ("congr.out", "w", stdout);
	
	scanf ("%d", &n); 
	N = 2 * n - 1;
	for (i = 1; i <= N; i++) {
		scanf ("%d ", &v[i]);
		v[i]%= n;
	}
	
	for (i = 1; i <= N; i++) {
		if (!a[1][v[i]]) 
			a[1][v[i]] = i;
		for (j = 2; j <= n; j++)
			for (l = 0; l < n; l++) {
				if (!a[j][l]) {
					L = l - v[i];
					if (L < 0) L+= n;
					
					if (a[j-1][L] && a[j-1][L] != i)
						a[j][l] = i;
				}
			}
	}
	
	int S = 0; N = n;
	while (n) {
		printf ("%d ", a[n][S]);
		S = S - v[a[n][S]];
		if (S < 0) S+= N;
		n--;
	}
}