Cod sursa(job #230896)

Utilizator raduzerRadu Zernoveanu raduzer Data 14 decembrie 2008 10:53:55
Problema Tablete Scor 100
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Clasele 5-8 Marime 0.78 kb
#include <cstdio>

const int MAX_N = 1005;

int n, k;
int a[MAX_N * MAX_N], b[MAX_N][MAX_N];

int main()
{
	int i, j, z;
	freopen("tablete.in", "r", stdin);
	freopen("tablete.out", "w", stdout);
	
	scanf("%d %d", &n, &k);
	
	int r = 0, s = -1;
	j = 2;
	for (i = 1; i <= n; ++i)
	{
		r += k - 1;
		
		for (; j <= n * n && s < r; j += 2) 
			s += 2;
		
		a[j - 2] = 1;
		b[i][k] = j - 2;
		--s;
	}
	
	z = 1;
	for (i = 1; i <= n; ++i)
	{
		for (j = 1; j < k; ++j)
		{
			while (a[z]) ++z;
			b[i][j] = z;
			a[z] = 1;
		}
	}
	
	for (i = 1; i <= n; ++i)
	{
		for (j = k + 1; j <= n; ++j)
		{
			while (a[z]) ++z;
			b[i][j] = z;
			a[z] = 1;
		}
	}
	
	for (i = 1; i <= n; ++i) 
	{
		for (j = 1; j <= n; ++j) printf("%d ", b[i][j]);
		printf("\n");
	}
}