Pagini recente » Cod sursa (job #2847014) | Cod sursa (job #2196032) | Cod sursa (job #1304496) | Cod sursa (job #2207078) | Cod sursa (job #2098697)
#include <cstdio>
using namespace std;
int a[1001][1001],f[1000001];
int main()
{
FILE *fin=fopen ("tablete.in","r");
FILE *fout=fopen ("tablete.out","w");
int n,k,i,j,pe;
fscanf (fin,"%d%d",&n,&k);
pe=k*n+1;
if (pe%2==1){
for (j=k+1;j<=n;j++){
for (i=1;i<=n;i++){
a[i][j]=pe;
f[pe]=1;
pe++;
}
}
pe=k*n;
for (i=n;i>0;i--){
a[i][k]=pe;
f[pe]=1;
pe-=2;
}
pe=n*k;
for (j=k-1;j>0;j--){
for (i=n;i>0;i--){
while (f[pe])
pe--;
a[i][j]=pe;
pe--;
}
}
}
else {
for (j=k+1;j<=n;j++){
for (i=1;i<=n;i++){
a[i][j]=pe;
f[pe]=1;
pe++;
}
}
a[1][k+1]=k*n;
f[k*n]=1;
pe=n*k+1;
for (i=n;i>0;i--){
a[i][k]=pe;
f[pe]=1;
pe-=2;
}
pe=n*k;
for (j=k-1;j>0;j--){
for (i=n;i>0;i--){
while (f[pe])
pe--;
a[i][j]=pe;
pe--;
}
}
}
for (i=1;i<=n;i++){
for (j=1;j<=n;j++)
fprintf (fout,"%d ",a[i][j]);
fprintf (fout,"\n");
}
return 0;
}