Pagini recente » Cod sursa (job #3242182) | Cod sursa (job #2409790) | Cod sursa (job #2704506) | Cod sursa (job #1652323) | Cod sursa (job #2594703)
#include <bits/stdc++.h>
using namespace std;
int a[1001][1001],i,k,n;
bool vc[1000001];
bool check(int x){
if(vc[x]==1)
return false;
if(x-i-(i-1)*(n-k)<(i-1)*(k-1))
return false;
return true;
}
int main()
{
ifstream cin("tablete.in");
ofstream cout("tablete.out");
int x,j;
cin>>n>>k;
if(n%2==0 && k%2==0){
x=0;
for(i=1;i<=n;++i)
for(j=1;j<=n;++j)
a[i][j]=++x;
}
if(n%2==1 && k%2==0){
x=0;
for(i=1;i<=n;++i)
for(j=1;j<=k;++j)
a[i][j]=++x;
for(i=1;i<=n;++i)
for(j=k+1;j<=n;++j)
a[i][j]=++x;
}
if(k%2==1){
a[1][k]=k+1;
vc[k+1]=1;
x=k+3;
for(i=2;i<=n;++i){
while(check(x)==false && x<=n*n)
x+=2;
a[i][k]=x;
vc[x]=1;
}
x=1;
for(i=1;i<=n;++i)
for(j=1;j<=k-1;++j){
while(vc[x]==1 && x<=n*n)
x++;
a[i][j]=x;
vc[x]=1;
++x;
}
for(i=1;i<=n;++i)
for(j=k+1;j<=n;++j){
while(vc[x]==1 && x<=n*n)
x++;
a[i][j]=x;
vc[x]=1;
++x;
}
}
for(i=1;i<=n;i++){
for(j=1;j<=n;j++)
cout<<a[i][j]<<" ";
cout<<'\n';
}
return 0;
}