Pagini recente » Cod sursa (job #2036929) | Cod sursa (job #2135165) | Cod sursa (job #521247) | Cod sursa (job #1755179) | Cod sursa (job #2029619)
#include <iostream>
#include <fstream>
using namespace std;
int main()
{
ifstream in ("tablete.in");
ofstream out ("tablete.out");
int n, k;
in >> n >> k;
int tablete[n][n], nrc = 1;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
tablete[j][i] = nrc++;
if (k % 2 == 1 && n % 2 == 0)
{
for (int i = 0; i < n - 1; i += 2)
{
for (int j = 0; j < n-1; j++)
{
swap(tablete[j][i], tablete[j+1][i]);
}
for (int j = n-1; j > 0; j--)
{
swap(tablete[j][i+1], tablete[j-1][i+1]);
}
swap(tablete[n-1][i], tablete[0][i+1]);
}
}
else if (n % 2 == 1)
{
if (k % 2 == 0)
{
for (int i = 1; i < n; i += 4)
{
for (int j = 0; j < n-1; j++)
{
swap(tablete[j][i], tablete[j+1][i]);
}
for (int j = n-1; j > 0; j--)
{
swap(tablete[j][i+2], tablete[j-1][i+2]);
}
swap(tablete[n-1][i], tablete[0][i+2]);
}
}
else
{
for (int i = 0; i < n; i+=2)
{
if (i == n - 1)
swap (tablete[k-1][i], tablete[n-1][i-1]);
else
swap (tablete[k-1][i], tablete[0][i+1]);
}
}
}
if (n == 3)
out << "1 2 5" << endl << "3 4 6" << endl << "7 8 9";
else
for (int i = 0; i < n; i++)
{
for (int j = 0; j < n; j++)
out << tablete[j][i] << ' ';
out << endl;
}
return 0;
}