Pagini recente » Cod sursa (job #2518084) | Cod sursa (job #716351) | Cod sursa (job #3191178) | Cod sursa (job #1150933) | Cod sursa (job #231172)
Cod sursa(job #231172)
#include <stdio.h>
int main()
{
FILE* in = fopen("tablete.in", "rt");
FILE* out = fopen("tablete.out", "wt");
int n;
int k;
fscanf(in, "%d %d", &n, &k);
if(n % 2 == 0)
{
for(int j = 0; j < n; j++)
{
for(int i = 0; i < n; i++)
{
if(i + 1 == k && j % 2 == 0)
fprintf(out, "%d ", (i - 1) * n + j + 2);
else if(i + 2 == k && j % 2 == 1)
fprintf(out, "%d ", (i + 1) * n + j);
else
fprintf(out, "%d ", i * n + j + 1);
}
fprintf(out, "\n");
}
}
else if(k % 2 == 0)
{
int a = 1;
int b = k * n + 1;
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(j <= k)
fprintf(out, "%d ", a++);
else
fprintf(out, "%d ", b++);
}
fprintf(out, "\n");
}
}
else
{
for(int i = 1; i <= n; i++)
{
for(int j = 1; j <= n; j++)
{
if(j == k)
{
if(i == n)
fprintf(out, "%d ", (n - 2) * (n - k + 1) + (n - k + 1) + n * (k - 1));
else if(i % 2 == 1)
fprintf(out, "%d ", i * (k - 1) + j - 1);
else
fprintf(out, "%d ", (i - 1) * (n - k + 1) + j - k + 1 + n * (k - 1));
}
else if(j == k - 1)
{
if(i % 2 == 1)
fprintf(out, "%d ", (i - 1) * (k - 1) + j);
else
fprintf(out, "%d ", (i - 2) * (n - k + 1) + j - k + 2 + n * (k - 1));
}
else if(j < k)
fprintf(out, "%d ", (i - 1) * (k - 1) + j);
else if(i == n - 1 && j == n)
fprintf(out, "%d ", (n - 1) * (n - k + 1) + 1 + n * (k - 1));
else
fprintf(out, "%d ", (i - 1) * (n - k + 1) + j - k + 1 + n * (k - 1));
}
fprintf(out, "\n");
}
}
fclose(in);
fclose(out);
return 0;
}