Cod sursa(job #253409)

Utilizator slayer4uVictor Popescu slayer4u Data 5 februarie 2009 19:19:03
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.94 kb
#include <stdio.h>
long n, k, next, x[1001][1001], v[1000001];
int main()
{
	freopen ("tablete.in", "rt", stdin);
	freopen ("tablete.out", "wt", stdout);

	scanf ("%ld %ld", &n, &k);

	next = 1;

	for (long i = 1; i <= n; ++i)
		for (long j = 1; j <= k; ++j)
		{
			if (j == k)
			{
				if (next % 2 == 0)
				{
					x[i][j] = next, v[next] = 1;
					if (!v[next + 1])
						++next;
					else
						next += 2;
				}
				else
				{
					x[i][j] = next + 1;
					v[next + 1] = 1;
				}
			}
			else
			{
				x[i][j] = next, v[next] = 1;
				if (!v[next + 1])
					++next;
				else
					next += 2;
			}
		}

	for (long i = 1; i <= n; ++i)
		for (long j = k + 1; j <= n; ++j)
		{
			x[i][j] = next, v[next] = 1;
			if (!v[next + 1])
				++next;
			else
				next += 2;
		}

	for (long i = 1; i <= n; ++i)
	{
		for (long j = 1; j <= n; ++j)
		{
			printf("%ld ", x[i][j]);
		}
		printf ("\n");
	}
	return 0;
}