Cod sursa(job #230957)

Utilizator luk17Luca Bogdan luk17 Data 14 decembrie 2008 11:03:47
Problema Tablete Scor 80
Compilator cpp Status done
Runda Algoritmiada 2009, Runda 1, Clasele 9-10 Marime 0.8 kb
#include<stdio.h>
#define NMAX 1000010
int viz[NMAX],n,k,a[1001][1001];
int main()
{
	int i,j;
	freopen("tablete.in","r",stdin);
	freopen("tablete.out","w",stdout);
	scanf("%d %d",&n,&k);
	if(k%2==0)
	{
		for(i=0;i<n;i++)
		{
			for(j=0;j<n;j++)
				printf("%d ", n*i+j+1);
			printf("\n");
		}
	}
	else
	{
		for(i=1;i<=n;i++)
		{
			a[i][k]=i*k+1;
			viz[i*k+1]=1;
		}
		for(i=2;i<=n;i+=2)
		{
			a[i][k]=i*k;
			viz[i*k]=1;
		}
		int p=1;
		for(i=1;i<=n;i++)
		{
			for(j=1;j<k;j++)
			{
				if(viz[p])
					p++;
				a[i][j]=p;
				p++;
			}
		}
		for(i=1;i<=n;i++)
		{
			for(j=k+1;j<=n;j++)
			{
				if(viz[p])
					p++;
				a[i][j]=p;
				p++;
			}
		}
	}
	for(i=1;i<=n;i++)
	{for(j=1;j<=n;j++)
			printf("%d ",a[i][j]);
		printf("\n");
	}
	return 0;
}