Pagini recente » Cod sursa (job #871839) | Cod sursa (job #2204779) | Cod sursa (job #2723780) | Cod sursa (job #954409) | Cod sursa (job #1893484)
#include <iostream>
#include <fstream>
#include <algorithm>
using namespace std;
ifstream in("tablete.in");
ofstream out("tablete.out");
const int nMax = 1005;
int n, k;
int sol[nMax][nMax];
void citire()
{
in >> n >> k;
}
void rezolvare()
{
if(n % 2 == 0)
{
if(k % 2 == 0)
{
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
sol[i][j] = (i - 1) * n + j;
}
else
{
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
sol[i][j] = (i - 1) * n + j-1;
sol[1][1] = n * n;
swap(sol[1][1], sol[n][n]);
swap(sol[1][k], sol[2][1]);
sort(sol[1] + 1, sol[1] + n + 1);
}
}
else
{
for(int i = 1; i <= n; ++i)
for(int j = 1; j <= n; ++j)
{
sol[i][j] = (i - 1) * n + j;
}
if(k % 2 == 0)
{
for(int i = 2; i < n; i += 2)
{
swap(sol[i][1], sol[i+1][1]);
sort(sol[i] + 1, sol[i] + n + 1);
}
}
else
{
for(int i = 1; i < n; i += 2)
swap(sol[i][1], sol[i+1][1]);
for(int i = 1; i < n; i += 2)
sort(sol[i] + 1, sol[i] + n + 1);
swap(sol[1][n], sol[n][n]);
sort(sol[n] + 1, sol[n] + n + 1);
}
}
}
void afisare()
{
for(int i = 1; i <= n; ++i)
{
for(int j = 1; j <= n; ++j)
out << sol[i][j] << " ";
out << "\n";
}
}
int main()
{
citire();
rezolvare();
afisare();
return 0;
}