Pagini recente » Cod sursa (job #7945) | Cod sursa (job #2938786) | Cod sursa (job #3153358) | Cod sursa (job #76422) | Cod sursa (job #1138928)
#include <cstdio>
#include<algorithm>
using namespace std;
FILE *f=fopen("tablete.in", "r");
FILE *g=fopen("tablete.out", "w");
int n, k, a[1001][1001], aux;
bool cmp(int a, int b){
return (a<b);
}
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");
}
}
int main()
{
fscanf(f, "%d%d", &n, &k);
int l=1;
for(int i=1; i<=n; ++i)
for(int j=1; j<=n; ++j){
a[i][j]=l;
++l;
}
if(k%2==0){
if(n%2==0){
afisare();
return 0;
}
if(k==n-1)
k-=2;
for(int i=2; i<n; i+=2){
aux=a[i][k];
a[i][k]=a[i-1][k+2];
a[i-1][k+2]=aux;
sort(a[i]+1, a[i]+n+1, cmp);
sort(a[i-1]+1, a[i-1]+n+1, cmp);
}
afisare();
return 0;
}
if(n%2==0){
for(int i=1; i<n; ++i)
if(a[i][k]%2==1){
aux=a[i][k];
a[i][k]=a[i+1][k-1];
a[i+1][k-1]=aux;
sort(a[i]+1, a[i]+n+1, cmp);
}
sort(a[n]+1, a[n]+n+1, cmp);
afisare();
return 0;
}
for(int i=1; i<n; ++i)
if(a[i][k]%2==1){
aux=a[i][k];
a[i][k]=a[i+1][k-2];
a[i+1][k-2]=aux;
sort(a[i]+1, a[i]+n+1, cmp);
}
aux=a[n][k];
a[n][k]=a[n-1][n];
a[n-1][n]=aux;
sort(a[n]+1, a[n]+n+1, cmp);
afisare();
return 0;
}