Pagini recente » Cod sursa (job #1341533) | Cod sursa (job #1251394) | Cod sursa (job #2634188) | Cod sursa (job #951287) | Cod sursa (job #830992)
Cod sursa(job #830992)
#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);
switch(K%2){
case 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++;
}
}
case 1:
switch(N%2){
case 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++;
case 1:
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;
}