Pagini recente » Cod sursa (job #3281434) | Cod sursa (job #1500923) | Cod sursa (job #988580) | Cod sursa (job #1019404) | Cod sursa (job #831001)
Cod sursa(job #831001)
#include <stdio.h>
FILE *f=fopen("tablete.in","r");
FILE *g=fopen("tablete.out","w");
int A[1001][1001],N,K;
int main(void){
register int i,j,t,q;
fscanf(f,"%d %d",&N,&K);
if(K%2==0 && N%2==0){
t=1;
for(i=1;i<=N;i++){
for(j=1;j<=K;j++){
A[i][j]=t++;
}
}
for(i=1;i<=N;i++){
for(j=K+1;j<=N;j++){
A[i][j]=t++;
}
}
}
if(K%2==1){
if(N%2==0){
for(q=1;q<=N;q+=2){
t=A[q-1][K]+1;
for(j=1;j<K;j++){
A[q][j]=t++;
}
A[q][K]=A[q-1][K]+K+1;
A[q+1][1]=A[q-1][K]+K;
t=A[q-1][K]+K+2;
for(j=2;j<=K;j++)
A[q+1][j]=t++;
}
t=A[N][K]+1;
for(i=1;i<=N;i++)
for(j=K+1;j<=N;j++)
A[i][j]=t++;
}
else{
for(q=1;q<=N-2;q+=2){
t=A[q-1][K]+1;
for(j=1;j<K;j++){
A[q][j]=t++;
}
A[q][K]=A[q-1][K]+K+1;
A[q+1][1]=A[q-1][K]+K;
t=A[q-1][K]+K+2;
for(j=2;j<=K;j++)
A[q+1][j]=t++;
}
for(j=1;j<=K;j++){
A[N][j]=(N-1)*K+j;
}
t=A[N][K]+1;
for(i=1;i<=N;i++){
for(j=K+1;j<=N;j++){
A[i][j]=t++;
}
}
A[N][K]=N*K+1;
A[1][K+1]=N*K;
}
}
for(i=1;i<=N;i++){
for(j=1;j<=N;j++)
fprintf(g,"%d ",A[i][j]);
fprintf(g,"\n");
}
return 0;
}