文件详细信息
本文件的大小为 692 字节。
#include<cstdio>
const int n=1000;
bool G[n+1][n+1];
int k;
int calc(int k){
int cnt=0;
while(k){
k>>=1;
cnt++;
}
return cnt;
}
void add(int u,int v){
G[u][v]=G[v][u]=true;
}
int main(){
scanf("%d",&k);
if(k==1){
puts("2\nNY\nYN");
return 0;
}
add(1,3);
add(1,4);
add(3,5);
add(3,6);
add(4,7);
int bit=calc(k)-1;
if((k>>(bit-1))&1)add(4,6);
for(int i=2,j=i*3;i<=bit;i++,j+=3){
add(j-1,j+2);
add(j-1,j+3);
add(j,j+2);
add(j,j+3);
add(j+1,j+4);
if((k>>(bit-i))&1)add(j+1,j+3);
}
int _n_=bit*3+4;
add(_n_-2,2);
add(_n_-1,2);
printf("%d\n",_n_);
for(int i=1;i<=_n_;i++){
for(int j=1;j<=_n_;j++)putchar(G[i][j]?'Y':'N');
putchar('\n');
}
return 0;
}