Cod sursa(job #478254)

Utilizator darrenRares Buhai darren Data 17 august 2010 21:56:41
Problema Tije Scor 15
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.81 kb
#include <cstdio>
#include <algorithm>

int n, fn[101];

int mod(int x)
{
	if (x > n) x -= n;
	return x;
}

int main()
{
	freopen("tije.in", "r", stdin);
	freopen("tije.out", "w", stdout);
	
	scanf("%d", &n);

	for (int i = n - 1; i >= 2; --i)
		for (int j = 1; j <= n; ++j)
		{
			int wh = mod(j + (n - i));
			for (int k = 1; k <= i; ++k)
				printf("%d %d\n", j, n + 1);
			printf("%d %d\n", wh, j);
			
			for (int k = 1; k < i; ++k)
				printf("%d %d\n", n + 1, j);
			printf("%d %d\n", n + 1, wh);
		}
	for (int i = 1; i <= n; ++i)
		fn[i] = i;
	for (int j = 1; j <= n; ++j)
		if (fn[mod(j + n - 1)] != j)
		{
			int wh = fn[mod(j + n - 1)];
			printf("%d %d\n", j, n + 1);
			printf("%d %d\n", wh, j);
			
			std::swap(fn[fn[j]], fn[fn[wh]]);
			printf("%d %d\n", n + 1, wh);
		}
}