Cod sursa(job #231662)

Utilizator ilincaSorescu Ilinca ilinca Data 14 decembrie 2008 12:47:18
Problema Tablete Scor 10
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Clasele 9-10 Marime 0.71 kb
#include <stdio.h>

#define maxn 1005

int n, k, m [maxn] [maxn];


void init ()
{
	int i, j, k=0;
	for (i=1; i<=n; ++i)
		for (j=1; j<=n; ++j)
			m [i] [j]=++k;
}

void rez1 ()
{
	if (!(k%2))
		return ;
	int i, j;
	for (i=1; i<=n; i+=2)
	{
		for (j=1; j<n; ++j)
			m [i] [j]=m [i] [j+1];
		m [i] [n]=m [i+1] [n];
	}			
	for (i=2; i<=n; i+=2)
	{
		for (j=n; j>1; --j)
			m [i] [j]=m [i] [j-1];
		m [i] [1]=m [i-1] [1]-1;
	}	
}

void print ()
{
	int i, j;
	for (i=1; i<=n; ++i)
	{
		for (j=1; j<=n; ++j)
			printf ("%d ", m [i] [j]);
		printf ("\n");
	}
}

int main ()
{
	freopen ("tablete.in", "r", stdin);
	freopen ("tablete.out", "w", stdout);
	scanf ("%d%d", &n, &k);
	init ();
	if (n%2)
		rez1 ();
	print ();
	return 0;
}