Pagini recente » Cod sursa (job #1882948) | Cod sursa (job #1863940) | Cod sursa (job #1283397) | Cod sursa (job #1953791) | Cod sursa (job #243574)
Cod sursa(job #243574)
#include <fstream.h>
void par_imp();
void imp_par();
void imp_imp();
long int A[1002][1002];
int N,K;
int main()
{
ifstream in("tablete.in");
ofstream out("tablete.out");
int i,j;
long int nr=1;
in>>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++)
out<<A[i][j]<<' ';
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;
}
}
}