Pagini recente » Cod sursa (job #2910519) | Cod sursa (job #2828803) | Cod sursa (job #2937184) | Cod sursa (job #1552127) | Cod sursa (job #2256528)
#include <fstream>
using namespace std;
ifstream f ("tablete.in");
ofstream g ("tablete.out");
int a[1005][1005], n, k, lin, col;
bool b[1000005];
int main()
{
f >> n >> k;
if (k % 2 == 0)
{
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= k; j++)
{
b[(i - 1) * k + j] = true;
a[i][j] = (i - 1) * k + j;
}
}
}
else
{
if (n % 2 == 0)
{
for (int i = 1; i <= n - 1; i += 2)
{
int val = (i - 1) * k;
for (int j = 1; j <= k - 1; j++)
{
val++;
b[val] = true;
a[i][j] = val;
}
a[i][k] = val + 2;
b[val + 2] = true;
b[val + 1] = true;
a[i + 1][1] = val + 1;
val = val + 2;
for (int j = 2; j <= k; j++)
{
val++;
b[val] = true;
a[i + 1][j] = val;
}
}
}
else
{
for (int i = 1; i <= n - 1; i += 2)
{
int val = (i - 1) * k;
for (int j = 1; j <= k - 1; j++)
{
val++;
b[val] = true;
a[i][j] = val;
}
a[i][k] = val + 2;
b[val + 2] = true;
b[val + 1] = true;
a[i + 1][1] = val + 1;
val = val + 2;
for (int j = 2; j <= k; j++)
{
val++;
b[val] = true;
}
}
for (int i = 1; i <= k; i++)
{
b[(n - 1) * k + i] = true;
a[n][i] = (n - 1) * k + i;
}
}
}
lin = 1;
col = k + 1;
for (int val = 1; val <= n * n; val++)
{
if (b[val] == false)
{
a[lin][col] = val;
col++;
if (col == n + 1)
{
col = k + 1;
lin++;
}
}
}
for (int i = 1; i <= n; i++)
{
for (int j = 1; j <= n; j++)
g << a[i][j] << " ";
g << '\n';
}
return 0;
}