Pagini recente » Cod sursa (job #1921683) | Cod sursa (job #996650) | Cod sursa (job #2851937) | Cod sursa (job #2401748) | Cod sursa (job #231479)
Cod sursa(job #231479)
#include <stdio.h>
#define NMAX 1000
int ramas, nr, n, k, mat[NMAX+10][NMAX+10], m[NMAX*NMAX+10];
int main(){
freopen("tablete.in", "r", stdin);
freopen("tablete.out", "w", stdout);
scanf("%d %d", &n, &k);
if (k % 2 == 0)
nr = k;
else{
nr = (k/2 + 1)*2;
ramas = nr - k;
}
mat[1][k] = nr;
m[nr] = 1;
for (int i = 1; i <= n-1; i++){
if (ramas == 0){
if (k%2 == 0){
nr += k;
mat[i+1][k] = nr;
m[nr] = 1;
ramas = 0;
}
else{
nr += k+1;
mat[i+1][k] = nr;
m[nr] = 1;
ramas = 1;
}
}
else{
nr += k-1;
mat[i+1][k] = nr;
m[nr] = 1;
ramas = 0;
}
}
nr = 1;
for (int i = 1; i <= n; i++)
for (int j = 1; j <= k-1; j++){
while (m[nr] == 1)
nr++;
mat[i][j] = nr;
nr++;
}
nr = n*n;
for (int i = n; i >= 1; i--)
for (int j = n; j >= k+1; j--){
while (m[nr] == 1)
nr--;
mat[i][j] = nr;
nr--;
}
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++)
printf("%d ", mat[i][j]);
printf("\n");
}
return 0;
}