Cod sursa(job #313178)

Utilizator Pestisor_auriuVictor Movila Pestisor_auriu Data 8 mai 2009 09:15:55
Problema Tablete Scor 100
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.39 kb
#include<stdio.h>
int main ()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
long t,x,r,aux,c=1,pp,n,k,i,j;
scanf("%ld",&n);
scanf("%ld",&k);
if(n%2==0&&k%2==0)
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
 {printf("%ld ",c);
	c++;}
printf("\n");}
else
if(n%2!=0&&k%2==0)
{ c=0; i=1;  pp=3;  r=1;
while(i!=n*n+1)
{if(c==0)
 {if(n==r&&pp!=3)
	{printf("%ld",i);
	 if(i!=n*n)
	 i++;
	 printf("\n");
	 c=i;
	 i++;
	 r=1;
	 pp=0;}
	else
	{printf("%ld ",i);
	 i++;
	 pp=0;
	 r++;}}
 else
	if(pp==1)
	{printf("%ld ",c);
	 printf("%ld ",i);
	 i++;
	 pp=0;
	 r=r+2;}
	else
	{if(r==n)
	 {printf("%ld",i);
		printf("\n");
		printf("%ld ",c);
		i++;
		r=2;
		c=0;
		pp=1;}
	 else
	 {printf("%ld ",i);
		i++;
		r++;}
	 }
	} }
else
if(n%2==0&&k%2!=0)
{for(i=1;i<=n;i++)
 {c=i;
 if(i%2==1)
	for(j=1;j<=n;j++)
		if(j!=k)
			 {printf("%ld ",c);
			 c=c+n;}
		 else
					{printf("%ld ",c-n+1);
						c=c+n;}

	else
	 for(j=1;j<=n;j++)
		if(j==k-1)
			{printf("%ld ",c+n-1);
			 c=c+n;}
		else
			{printf("%ld ",c);
				c=c+n;
			 }

	printf("\n");
 }
}
else
if(n%2!=0&&k%2!=0)
{c=1; t=2;
for(i=1;i<=n-1;i++)
	{
	 for(j=1;j<=n;j++)
		{ if(c==t)
					 c++;
			printf("%ld ",c);
			c++;
		 }
	 t=t+n+1;
	printf("\n");
	}
t=2;
for(j=1;j<=n-1;j++)
	{printf("%ld ",t);
	t=t+n+1;
	}
printf("%ld",n*n);
}





return 0;
}