Pagini recente » Cod sursa (job #672692) | Cod sursa (job #1344848) | Cod sursa (job #844970) | Cod sursa (job #953005) | Cod sursa (job #1144153)
#include <cstdio>
#include<algorithm>
using namespace std;
FILE *f=fopen("tablete.in", "r");
FILE *g=fopen("tablete.out", "w");
int a[1001][1001], k, n;
void afisare(){
for(int i=1; i<=n; ++i){
for(int j=1; j<=n; ++j)
fprintf(g, "%d ", a[i][j]);
fprintf(g, "\n");
}
}
bool cmp(int a, int b){
return(a<b);
}
void intersc(int l1, int c1, int l2, int c2){
int aux;
aux=a[l1][c1];
a[l1][c1]=a[l2][c2];
a[l2][c2]=aux;
}
int main()
{
fscanf(f, "%d%d", &n, &k);
int l=0;
for(int i=1; i<=n; ++i)
for(int j=1; j<=n; ++j)
a[i][j]=++l;
if(n%2==0){
if(k%2==0){
afisare();
return 0;
}
for(int i=2; i<=n; ++i){
intersc(i, k, i-1, n);
sort(a[i]+1, a[i]+k+1, cmp);
}
intersc(1, k, 2, 1);
sort(a[1]+k, a[1]+n+1, cmp);
afisare();
return 0;
}
if(k%2==1){
intersc(1, k, 2, 1);
sort(a[1]+k, a[1]+n+1, cmp);
}
//a[i-1][n]<=>a[i-1][n-1]
//a[i][k]<=>a[i-1][n]
for(int i=2; i<=n; ++i)
if(a[i][k]%2==1){
intersc(i-1, n, i-1, n-1);
intersc(i, k, i-1, n);
sort(a[i]+1, a[i]+k+1, cmp);
}
afisare();
return 0;
}