Pagini recente » Cod sursa (job #3173951) | Cod sursa (job #299788) | Cod sursa (job #1241288) | Cod sursa (job #1423164) | Cod sursa (job #1706230)
#include <iostream>
#include <fstream>
using namespace std;
ifstream in("tablete.in");
ofstream out("tablete.out");
const int maxn = 1005;
int M[maxn][maxn];
int main()
{
int n, k;
in >> n >> k;
for(int i = 1; i <= n; i++)
for(int j = 1; j <= n; j++)
M[i][j] = (i - 1) * n + j;
if(n % 2 == 0 && k % 2 == 0)
{
for(int i = 1; i <= n; i++, out << "\n")
for(int j = 1; j <= n; j++)
out << M[i][j] << " ";
}
if(n % 2 == 0 && k % 2 == 1)
{
for(int i = 1; i <= n; i++)
for(int j = k; j <= n - 2; j = j + 2)
swap(M[i][j], M[i][j+1]);
for(int i = 1; i < n; i++)
swap(M[i][n], M[i+1][1]);
for(int i = 1; i <= n; i++, out << "\n")
for(int j = 1; j <= n; j++)
out << M[i][j] << " ";
}
if(n % 2 == 1 && k % 2 == 0)
{
for(int i = 2; i <= n; i = i + 2)
for(int j = k; j < n; j++)
swap(M[i][j], M[i][j+1]);
for(int i = 2; i <= n; i = i + 2)
swap(M[i][n], M[i+1][1]);
for(int i = 1; i <= n; i++, out << "\n")
for(int j = 1; j <= n; j++)
out << M[i][j] << " ";
}
if(n % 2 == 1 && k % 2 == 1)
{
for(int i = 1; i <= n; i = i + 2)
for(int j = k; j < n; j++)
swap(M[i][j], M[i][j+1]);
for(int i = 1; i < n; i = i + 2)
swap(M[i][n], M[i+1][1]);
for(int i = 1; i <= n; i++, out << "\n")
for(int j = 1; j <= n; j++)
out << M[i][j] << " ";
}
return 0;
}