Cod sursa(job #231073)

Utilizator thecataPol Catalin-Petru thecata Data 14 decembrie 2008 11:25:40
Problema Tablete Scor 100
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Studenti Marime 1.08 kb
#include <cstdio>
using namespace std;

int main()
{
	int n,k;
	freopen("tablete.in", "rt", stdin);
	freopen("tablete.out", "wt", stdout);
	scanf("%d %d", &n, &k);
	if (k%2==0)
	{
		int i,j;
		if (n%2==0)
		{
			for (i=0; i<n; i++)
			{
				for (j=0; j<n; j++)
					printf("%d ", i*n+j+1);
				printf("\n");
			}
		}
		else
		{
			for (i=0; i<n-1; i++)
			{
				for (j=0; j<n; j++)
					printf("%d ",i*(n+1)+j+1);
				printf("\n");
			}
			for (i=1; i<n; i++)
				printf("%d ", i*(n+1));
			printf("%d\n", n*n);
		}
	}
	else
	{
		int i,j;
		int s=0;
		int l=1;
		for (i=0; i<n-1; i++)
		{
			if (s==0)
				printf("%d ", l++);
			else
				printf("%d ", s);
			printf("%d ", l++);
			if (l%2!=0)
			{
				s=l;
				l++;
			}
			else
				s=0;
			printf("%d ", l++);
			for (j=3; j<n; j++)
			{
				if (j==n-1 && i==n-2)
					printf("%d", n*n-1);
				else
					printf("%d ", l++);
			}
			printf("\n");
		}
		if (s==0)
			printf("%d ", l++);
		else
			printf("%d ", s);
		printf("%d ", l++);
		for (i=0; i<n-3; i++)
			printf("%d ", l++);
		printf("%d\n", n*n);
	}
	fclose(stdin);
	fclose(stdout);
	return 0;
}