Pagini recente » Cod sursa (job #20652) | Cod sursa (job #1559530) | Istoria paginii runda/jc2018-runda-2/clasament | Cod sursa (job #2848106) | Cod sursa (job #2059888)
#include <fstream>
using namespace std;
ifstream fin ("tablete.in");
ofstream fout ("tablete.out");
int n, k, m = 1, v[1005][1005];
int main()
{
fin>>n>>k;
if(n % 2 == 0 && k % 2 == 0){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
fout<<m++<<" ";
}
fout<<"\n";
}
}
else if(n % 2 == 1 && k % 2 == 0){
for(int i = 1; i <= n; i++){
v[i][1] = m++;
}
for(int i = 1; i <= n; i++){
for(int j = 2; j <= n; j++){
v[i][j] = m++;
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
fout<<v[i][j]<<" ";
}
fout<<"\n";
}
}
else if(n % 2 == 0 && k % 2 == 1){
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
v[j][i] = m++;
}
}
for(int i = 1; i <= n; i++){
if(v[i][k] % 2 == 1){
swap(v[i + 1][k - 1], v[i][k]);
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
fout<<v[i][j]<<" ";
}
fout<<"\n";
}
}
else if(n % 2 == 1 && k % 2 == 1){
int i;
for(i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
v[j][i] = m++;
}
}
for(i = 1; i < n- 1; i++){
if(v[i][k] % 2 == 1){
swap(v[i + 2][k - 1], v[i][k]);
}
}
i = n;
swap(v[i - 2][k + 1], v[i][k]);
for(int i = 1; i < n; i++){
for(int j = 1; j < n; j++){
if(v[i][k - 1] > v[i + 1][k - 1]){
swap(v[i][k - 1], v[i + 1][k - 1]);
}
}
}
for(int i = 1; i < n; i++){
for(int j = 1; j < n; j++){
if(v[i][k] > v[i + 1][k]){
swap(v[i][k], v[i + 1][k]);
}
}
}
for(int i = 1; i < n; i++){
for(int j = 1; j < n; j++){
if(v[i][k + 1] > v[i + 1][k + 1]){
swap(v[i][k + 1], v[i + 1][k + 1]);
}
}
}
for(int i = 1; i <= n; i++){
for(int j = 1; j <= n; j++){
fout<<v[i][j]<<" ";
}
fout<<"\n";
}
}
return 0;
}