Pagini recente » Cod sursa (job #1460109) | Cod sursa (job #3155837) | Cod sursa (job #1906337) | Cod sursa (job #2715075) | Cod sursa (job #673865)
Cod sursa(job #673865)
#include<stdio.h>
#include<fstream>
using namespace std;
ifstream f("tablete.in");
ofstream g("tablete.out");
#define MaxN 1010
int N,K,nr,A[MaxN][MaxN];
int main()
{
f >> N >> K;
for(int i=1;i<=N;i++)
for(int j=1;j<K;j++)
A[i][j] = ++nr;
if((N-K)%2 == 0)
{
if(!(nr&1))
{
-- nr;
A[N][K-1] = nr+2;
A[1][N] = N*N-N;
A[1][N+1] = N*N;
}
for(int i=1;i<=N;i++)
for(int j=K;j<N;j++)
if(++ nr && !A[i][j])
A[i][j] = nr;
for(int i=K+1;i<=N;i++)
A[1][i] = A[1][i+1];
for(int i=1;i<=N;i++)
if(++ nr && !A[i][N])
A[i][N] = nr;
}
else
{
if(!(nr&1))
-- nr, A[1][N+1] = N*N, A[N][K-1] = nr + 2;
for(int i=1;i<=N;i++)
for(int j=K;j<=N;j++)
if(++ nr && !A[i][j])
A[i][j] = nr;
if(A[N][N] != N*N)
for(int i=K+1;i<=N;i++)
A[1][i] = A[1][i+1];
}
for(int i=1;i<=N;i++,g<<"\n")
for(int j=1;j<=N;j++)
g << A[i][j] << " ";
return 0;
}