Pagini recente » Cod sursa (job #1775203) | Cod sursa (job #2933451) | Cod sursa (job #1457356) | Cod sursa (job #1876630) | Cod sursa (job #1412769)
#include <stdio.h>
#define MAXN 1000
int ma[MAXN][MAXN];
inline void fill(int l, int c, int s, int x, int k){
int i, j;
for(i = 0; i < l; i++){
for(j = 0; j < k; j++){
ma[i][j + s] = x;
x++;
}
}
for(i = 0; i < l; i++){
for(j = k; j < c; j++){
ma[i][j + s] = x;
x++;
}
}
}
int main(){
FILE *in = fopen("tablete.in", "r");
int n, k, i, j, x = 1;
fscanf(in, "%d%d", &n, &k);
fclose(in);
if(k & 1){
if(!(n & 1)){
for(i = 0; i < n; i++){
ma[i][0] = x;
x++;
}
fill(n, n - 1, 1, x, k - 1);
}
else{
for(i = 0; i < n - 1; i++){
ma[i][0] = x;
x++;
}
fill(n - 1, n - 1, 1, x, k - 1);
x = n * (n - 1) + 1;
for(i = 0; i < k - 1; i++){
ma[n - 1][i] = ma[i][n - 1];
ma[i][n - 1] = x;
x++;
}
ma[n - 1][k - 1] = ma[n - 2][n - 1];
ma[n - 2][n - 1] = x;
x++;
for(j = k; j < n; j++){
ma[n - 1][j] = x;
x++;
}
}
}
else
fill(n, n, 0, x, k);
FILE *out = fopen("tablete.out", "w");
for(i = 0; i < n; i++){
for(j = 0; j < n; j++){
fprintf(out, "%d ", ma[i][j]);
}
fputc('\n', out);
}
fclose(out);
return 0;
}