Pagini recente » Cod sursa (job #3128743) | Istoria paginii utilizator/vladvaldez | Cod sursa (job #2845914) | Match | Cod sursa (job #230814)
Cod sursa(job #230814)
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int a[1000][1000];
int marc[1000000];
int main () {
int n, k, i, j, val1, val2, start_val;
FILE *fi = fopen ("tablete.in", "r"),
*fo = fopen ("tablete.out", "w");
fscanf (fi, "%d%d", &n, &k);
memset (marc, 0, sizeof(marc));
val1 = n*n - 2*(n-1);
val2 = n*(k-1);
if (val2 % 2 == 1)
val2++;
start_val = val1 > val2 ? val2 : val1;
for (i = 0; i < n; i++) {
a[i][k-1] = start_val;
marc[start_val] = 1;
start_val += 2;
}
start_val = 1;
for (i = 0; i < n; i++)
for (j = 0; j < k-1; j++) {
while ( marc[start_val] )
start_val++;
a[i][j] = start_val;
marc[start_val] = 1;
start_val++;
}
for (i = 0; i < n; i++)
for (j = k; j < n; j++) {
while ( marc[start_val] )
start_val++;
a[i][j] = start_val;
marc[start_val] = 1;
start_val++;
}
for (i = 0; i < n; i++) {
for (j = 0; j < n-1; j++)
fprintf (fo, "%d ", a[i][j]);
fprintf (fo, "%d\n", a[i][n-1]);
}
fclose (fi);
fclose (fo);
return 0;
}