Pagini recente » Cod sursa (job #2643459) | Cod sursa (job #1834603) | Cod sursa (job #3202504) | Cod sursa (job #1008878) | Cod sursa (job #1558515)
#include <stdio.h>
#include <algorithm>
#define nmax 1010
using namespace std;
int n,m;
int sol[nmax][nmax];
void print()
{
for (int i=1;i<=n;i++) {
for (int j=1;j<=n;j++) printf("%d ",sol[i][j]);
printf("\n");
}
}
int main() {
freopen("tablete.in","r",stdin);
freopen("tablete.out","w",stdout);
scanf("%d %d",&n,&m);
for (int i=1;i<=n;i++)
for (int j=1;j<=n;j++)
sol[i][j]=((i-1)*n+j);
if (m%2==0 && n%2==0) { print(); return 0; }
if (m%2==0) {
for (int i=2;i<=n;i+=2) swap(sol[i][m],sol[i][m+1]);
for (int i=2;i<=n;i+=2) {
for (int j=m+1;j<n;j++) sol[i][j]=sol[i][j+1];
}
for (int i=2;i<n;i+=2) swap(sol[i][n],sol[i+1][1]);
for (int i=3;i<=n;i+=2) sol[i][1]=((i-2)*n+m);
print(); return 0;
}
if (n%2==1 && m%2==1) {
for (int i=1;i<=n;i+=2) swap(sol[i][m],sol[i][m+1]);
for (int i=1;i<=n;i+=2) {
for (int j=m+1;j<n;j++) sol[i][j]=sol[i][j+1];
}
for (int i=1;i<n;i+=2) swap(sol[i][n],sol[i+1][1]);
for (int i=2;i<=n;i+=2) sol[i][1]=((i-2)*n+m);
print(); return 0;
}
for (int i=1;i<=n;i++) swap(sol[i][m],sol[i][m+1]);
for (int i=1;i<=n;i++) {
for (int j=m+1;j<n;j++) sol[i][j]=sol[i][j+1];
}
for (int i=1;i<n;i++) swap(sol[i][n],sol[i+1][1]);
for (int i=2;i<=n;i++) sol[i][1]=((i-2)*n+m);
print();
return 0;
}