Pagini recente » Cod sursa (job #2829384) | Cod sursa (job #993916) | Cod sursa (job #2132276) | Cod sursa (job #3182944) | Cod sursa (job #507681)
Cod sursa(job #507681)
#include <cstdio>
#define N 210
int n;
char a[N][N];
inline bool put3(int k) {
while(k>1) {
if(k%3==0) {
k /= 3;
continue;
}
return false;
}
return true;
}
void rezolva3(int pr,int ul) {
if(pr==ul)
return;
int lun = (ul-pr+1)/3;
int s1 = pr;
int s2 = pr+lun;
int s3 = s2+lun;
for(int i=s1; i<s2; ++i) {
for(int j=s2; j<s3; ++j)
a[i][j] = '1';
}
for(int i=s2; i<s3; ++i) {
for(int j=s3; j<=ul; ++j)
a[i][j] = '1';
}
for(int i=s3; i<=ul; ++i) {
for(int j=s1; j<s2; ++j)
a[i][j] = '1';
}
rezolva3(s1,s2-1);
rezolva3(s2,s3-1);
rezolva3(s3,ul);
}
inline void scrie() {
for(int i=1; i<=n; ++i) {
for(int j=1; j<=n; ++j)
fputc(a[i][j],stdout);
fputc('\n',stdout);
}
}
int main() {
freopen("oras.in","r",stdin);
freopen("oras.out","w",stdout);
scanf("%d",&n);
for(int i=1; i<=n; ++i) {
for(int j=1; j<=n; ++j)
a[i][j] = '0';
}
if(put3(n)) {
rezolva3(1,n);
scrie();
return 0;
}
//rezolva(1,n);
//scrie();
return 0;
}