Pagini recente » Istoria paginii utilizator/rarres | Cod sursa (job #2281489) | Profil M@2Te4i | Diferente pentru schimbare-borland/argumentatie intre reviziile 27 si 11 | Cod sursa (job #231657)
Cod sursa(job #231657)
#include <iostream>
#include <cstring>
#define FIN "tablete.in"
#define FOUT "tablete.out"
using namespace std;
long N,K;
long used[1000010];
long a[1010][1010];
void iofile(void){
freopen(FIN,"rt",stdin);
freopen(FOUT,"wt",stdout);
scanf("%ld%ld",&N,&K);
fclose(stdin);
return ;
}
void next_step(long &x){
long c=x+1;
while (used[c]){++c;}
x=c;
}
void complete(void){
memset(used,0,sizeof(used));
long x;
if (K%2==0){
if (N%2==0){
x=1;
for (int i=1;i<=N;++i){
for (int j=1;j<=N;++j){
a[i][j]=x;
used[x]=1;
next_step(x);
}
}
} else
{
x=1;
for (int i=1;i<=N;++i){
for (int j=1;j<=K;++j){
a[i][j]=x;
used[x]=1;
next_step(x);
}
}
for (int i=1;i<=N;++i){
for (int j=K+1;j<=N;++j){
a[i][j]=x;
used[x]=1;
next_step(x);
}
}
}
} else {
x=1;
for (int i=1;i<=N;++i){
for (int j=1;j<K;++j){
a[i][j]=x;
used[x]=1;
next_step(x);
}
if (x%2!=0){
int src=x+1;
while (used[src] || src%2==1){++src;}
a[i][K]=src;
used[src]=1;
} else {
a[i][K]=x;
used[x]=1;
next_step(x);
}
}
for (int i=1;i<=N;++i){
for (int j=K+1;j<=N;++j){
a[i][j]=x;
used[x]=1;
next_step(x);
}
}
}
for (int i=1;i<=N;++i){
for (int j=1;j<N;++j){
printf("%ld ",a[i][j]);
}
printf("%ld\n",a[i][N]);
}
fclose(stdout);
return ;
}
int main(void){
iofile();
complete();
return 0;
}