Pagini recente » Cod sursa (job #1341196) | Cod sursa (job #2634147) | Cod sursa (job #2147718) | Cod sursa (job #1278949) | Cod sursa (job #231752)
Cod sursa(job #231752)
#include<stdio.h>
long t,x,y,i;long a[101][101];
int n,poz,rand1,rand2,fin,k,poz2,poz3,j;
void sing_linie()
{
for(int i=1;i<=n;i++)
a[rand1][i]=i+t;
if(a[rand1][k]%2==1)
{
int c=a[rand1-1][n];
a[rand1-1][n]=a[rand1][k];
for(i=k-1;i>=1;i--)
a[rand1][i+1]=a[rand1][i];
a[rand1][1]=c;
}
}
int main ()
{
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d%d",&n,&k);
poz=2;
rand1=1;
rand2=2;
while(poz<=n)
{
if(k%2==0)
a[rand1][k]=t+k;
else
a[rand1][k]=t+k+1;
x=a[rand1][k];
a[rand2][k]=t+2*k;y=t+2*k;
poz2=1;poz3=1;
for(i=1;i<=x-1-t;i++)
{
if(poz2<k)
{
a[rand1][i]=t+i;
poz2++;
} //if
else
{
a[rand2][poz3]=t+i;
poz3++;
}//else
}//for
for(i=x+1;i<=y-1;i++)
{
a[rand2][poz3]=i;
poz3++;
} //for
fin=2*n;
poz2=k+1;poz3=k+1;
for(i=y+1;i<=2*n+t;i++)
{
if(poz2<=n)
{
a[rand1][poz2]=i;
poz2++;
} //if
else
{
a[rand2][poz3]=i;
poz3++;
}//else
}//for
t=t+2*n;
rand1=rand1+2;
rand2=rand2+2;
poz=poz+2;
if(poz-1==n)
sing_linie();
} //while
for(i=1;i<=n;i++)
{
for(j=1;j<=n;j++)
printf("%ld ",a[i][j]);
printf("\n");
}
return 0;
}