Cod sursa(job #264700)

Utilizator Bit_MasterAlexandru-Iancu Caragicu Bit_Master Data 22 februarie 2009 16:49:31
Problema Tablete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 0.9 kb
#include <stdio.h>

const int N = 1000;

int n,k,v[N][N];

void prelucrare()
{
	int nrv = 0,nrm = -1;
	for (int i = 1; i <= n; ++i)
		for (int j = 1; j <= n; ++j)
		{
			++nrv;
			if (j == 1 && nrm > -1)
			{
				v [i][j] = nrm;
				nrm = -1;
				--nrv;
			}
			else
				if (j == k && nrv%2!=0)
				{
					nrm = nrv;
					++nrv;
					v[i][j] = nrv;
				}
				else
					v[i][j] = nrv;
		}
	if (v[n][n] > n * n)
	{
		for (int j = n; j >= 2; --j)
			v[n][j] = v[n][j-1];
		int aux = v [1][n];
		v [1][n] = v [n][1];
		v [n][1] = aux;
	}
}

void afisare()
{
	for (int i = 1; i <= n; ++i)
	{
		printf ("%d",v [i][1]);
		for (int j = 2; j <= n; ++j)
			printf (" %d",v [i][j]);
		if (i < n)
			printf ("\n");
	}
}

int main()
{
	freopen ("tablete.in","r",stdin);
	freopen ("tablete.out","w",stdout);
	scanf ("%d %d",&n,&k);
	prelucrare();
	afisare();
	return 0;
}