Cod sursa(job #312909)

Utilizator Pestisor_auriuVictor Movila Pestisor_auriu Data 7 mai 2009 13:17:26
Problema Tablete Scor 20
Compilator cpp Status done
Runda Arhiva de probleme Marime 1.42 kb
#include<stdio.h>
int main ()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
int v[101][101],v1[200],r,aux,c=1,pp,n,k,i,j;
scanf("%d",&n);
scanf("%d",&k);
if(n%2==0&&k%2==0)
for(i=1;i<=n;i++)
{for(j=1;j<=n;j++)
 {printf("%d ",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("%d",i);
	 if(i!=n*n)
	 i++;
	 printf("\n");
	 c=i;
	 i++;
	 r=1;
	 pp=0;}
	else
	{printf("%d ",i);
	 i++;
	 pp=0;
	 r++;}}
 else
	if(pp==1)
	{printf("%d ",c);
	 printf("%d ",i);
	 i++;
	 pp=0;
	 r=r+2;}
	else
	{if(r==n)
	 {printf("%d",i);
		printf("\n");
		printf("%d ",c);
		i++;
		r=2;
		c=0;
		pp=1;}
	 else
	 {printf("%d ",i);
		i++;
		r++;}
	 }
	} }
else
if(n%2==0&&k%2!=0)
{c=1;
 for(i=1;i<=n;i++)
	for(j=1;j<=n;j++)
{	 v[j][i]=c;
	 c++;}
 for(i=1;i<=n;i+=2)
	for(j=3;j<=n;j+=3)
	{aux=v[i][j];
	 v[i][j]=v[i+1][j-1];
	 v[i+1][j-1]=aux;
	}
 for(i=1;i<=n;i++)
	{for(j=1;j<=n;j++)
	 printf("%d ",v[i][j]);
	printf("\n");
	}
}
else
if(n%2!=0&&k%2!=0)
{c=1;
 i=1;
 j=1;
 while(i!=n*n-j)
 {printf("%d ",i);
	i++;
	c++;
	if(c==2)
	 {v1[j]=i;
	 i++;
	 c++;
	 j++;}
	if(c==n)
	{printf("\n");
	 c=1;
	}  }
	for(r=1;r<j&&c!=n;r++)
	 {if(r==j&&c!=n)
		{printf("%d ",i);
		i++;
		c++;}
		else
		{printf("%d ",v1[r]);
		c++;
		if(c==n)
		 printf("\n");}

}

}
return 0;
}