Pagini recente » Cod sursa (job #1945040) | Cod sursa (job #1627819) | Cod sursa (job #947440) | Cod sursa (job #1358677) | Cod sursa (job #249237)
Cod sursa(job #249237)
#include <stdio.h>
void par_imp();
void imp_par();
void imp_imp();
long int A[1001][1001];
int N,K;
int main()
{
FILE *in=fopen("tablete.in","r");
FILE *out=fopen("tablete.out","w");
int i,j;
long int nr=1;
fscanf(in,"%d%d",&N,&K);
for(i=1;i<=N;i++)
for(j=1;j<=N;j++)
A[i][j]=nr++;
if(N%2==0 && K%2==1)
par_imp();
else
if(N%2==1 && K%2==0)
imp_par();
else
if(N%2==1 && K%2==1)
imp_imp();
for(i=1;i<=N;i++)
{
for(j=1;j<=N;j++)
fprintf(out,"%d ",A[i][j]);
fprintf(out,"\n");
}
return 0;
}
void par_imp()
{
int i,j,t;
for(i=1;i<N;i+=2)
for(j=2;j<=N;j++)
{
t=A[i+1][j-1]; A[i+1][j-1]=A[i][j];
A[i][j]=t;
}
}
void imp_par()
{
int i,j,t;
for(i=2;i<N-1;i+=4)
for(j=2;j<=N;j++)
{
t=A[i+2][j-1]; A[i+2][j-1]=A[i][j];
A[i][j]=t;
}
if(N%4==3)
{
t=A[N-1][K];
for(i=K+1;i<=N;i++)
A[N-1][i-1]=A[N-1][i];
A[N-1][N]=A[N][1];
A[N][1]=t;
}
}
void imp_imp()
{
int i,j,t;
for(i=1;i<N-1;i+=4)
for(j=2;j<=N;j++)
{
t=A[i+2][j-1]; A[i+2][j-1]=A[i][j];
A[i][j]=t;
}
if(N%4==1)
{
t=A[N][1]; A[N][1]=A[N-2][N];
A[N-2][N]=t;
for(i=2;i<=K;i++)
{
t=A[N][i]; A[N][i]=A[N-1][K+i-1];
A[N-1][K+i-1]=t;
}
}
}