Cod sursa(job #313595)

Utilizator AlexWSIaru Alex AlexWS Data 9 mai 2009 13:36:17
Problema Tablete Scor 10
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.26 kb
#include<stdio.h>
int main()
{
long n,k,i;
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%ld%ld",&n,&k);
if((n%2==0)&&(k%2==0))
	{
	for(i=1;i<=n*n;i++)
		{
		printf("%3ld ",i);
		if(i%n==0)
			printf("\n");
		}
	}
if((n%2==0)&&(k%2==1))
	{
	long l=1,col;
	for(i=1;i<=n*n;i++)
		{
		col=i-(l-1)*n;
		if(i%n!=k)
			printf("%3ld ",l+(col-1)*n);
		else
			printf("%3ld ",l+(col-2)*n+1);
		if(i%n==0)
			{
			l++;
			printf("\n");
			}
		}
	}
if((n%2==1)&&(k%2==1))
	{
	long l=1,col,scris=1;
	for(i=1;i<=n*(n-1);i++)
		{
		col=i-(l-1)*n;
		if(col==2)
			scris++;
		printf("%3ld",scris);
		scris++;
		if(i%n==0)
			{
			l++;
			printf("\n");
			}
		}
		scris=2;
	for(i=1;i<=n;i++)
		{
		printf("%3ld",scris);
		scris=scris+n+1;
		}
	}
if((n%2==1)&&(k%2==0))
	{
	long retin=1,l=1,col,scris=1;
	for(i=1;i<=n*n;i++)
		{
		col=i-(l-1)*n;
		if(col==1)
			{if(scris%2==0)
				{
				if (retin!=1)
					{
					printf("%3ld",retin);
					}
				else
				scris++  ;
				printf("%3ld",scris+1);
				retin=scris;
				
				}
			else
			{printf("%3ld",scris);
			scris++;}
			}
		else
		{
		printf("%3ld",scris);
		scris++;
		}
		if(i%n==0)
			{
			l++;
			printf("\n"); }
		}
	}
return 0;
}