Pagini recente » Cod sursa (job #3331522) | Cod sursa (job #3347090) | Cod sursa (job #3320345) | Cod sursa (job #3344750) | Cod sursa (job #3331050)
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("tablete.in");
ofstream fout("tablete.out");
#define MAXN 1000
int m[MAXN + 2][MAXN + 2];
void easyparsol(int n){
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
fout << n * (i - 1) + j << " ";
}
fout << '\n';
}
}
void hardimpsol(int n, int k){
int val = 0;
for (int i = 1; i <= n; i++){
for (int j = 1; j <= k; j++){
m[i][j] = ++val;
}
}
for (int i = 1; i <= n; i++){
for (int j = k + 1; j <= n; j++){
m[i][j] = ++val;
}
}
if (n % 2 == 1){
swap(m[1][k + 1], m[n][k]);
}
for (int i = 1; i < n; i += 2){
swap(m[i][k], m[i + 1][1]);
}
for (int i = 1; i <= n; i++){
for (int j = 1; j <= n; j++){
fout << m[i][j] << " ";
}
fout << '\n';
}
}
int main()
{
int n, k;
fin >> n >> k;
if (k % 2 == 0){
easyparsol(n);
}
else{
hardimpsol(n, k);
}
return 0;
}