Pagini recente » Cod sursa (job #1998780) | Cod sursa (job #1260863) | Rating Ketevan Tsimakuridze (kkts) | Cod sursa (job #2982753) | Cod sursa (job #231428)
Cod sursa(job #231428)
#include <stdio.h>
int n,k;
int a[1005][1005];
void print ()
{
int i,j;
for (i=1; i<=n; ++i)
{
for (j=1; j<=n; ++j)
printf ("%d ",a[i][j]);
printf ("\n");
}
}
void schimba1 ()
{
int i,j,aux;
for (i=1; i<n; ++i)
{
aux=a[i][k];
for (j=k; j<n; ++j)
a[i][j]=a[i][j+1];
a[i][n]=a[i+1][1];
a[i+1][1]=aux;
}
aux=a[n][n];
a[n][n]=a[n-1][n];
a[n-1][n]=aux;
aux=a[n][n];
i=n-1;
j=0;
while (aux<a[n][i])
{
--i;
++j;
}
for (i=n; i>n-j; --i)
a[n][i]=a[n][i-1];
a[n][n-j]=aux;
}
void schimba2 ()
{
int i,j,aux;
for (i=2; i<n; i+=2)
{
aux=a[i][n];
for (j=n; j>=2; --j)
a[i][j]=a[i][j-1];
a[i][1]=a[i-1][n];
a[i-1][n]=aux;
}
}
int main ()
{
freopen ("tablete.in","r",stdin);
freopen ("tablete.out","w",stdout);
int i,j,l=1;
scanf ("%d%d",&n,&k);
for (i=1; i<=n; ++i)
for (j=1; j<=n; ++j)
a[i][j]=l++;
if (n%2==0 && k%2==0)
print ();
else if (n%2==0)
{
schimba1 ();
print ();
}
else if (n%2==1 && k%2==0)
{
schimba2 ();
print ();
}
else
{
}
return 0;
}