/* package whatever; // don't place package name! */
import java.util.*;
import java.lang.*;
import java.io.*;
/* Name of the class has to be "Main" only if the class is public. */
class Ideone
{
static String pascalString
(int n
) {
int[] num2s = new int[n+2];
//calculate number of 2 factors in 1...n
num2s[0] = num2s[1] = 0;
for (int i=2; i<=n; ++i) {
if ((i&1) == 0) {
num2s[i] = num2s[i/2]+1;
} else {
num2s[i] = 0;
}
}
//convert to number of 2 factors in 1! ... n!
for(int i=2; i<=n; ++i) {
num2s[i] += num2s[i-1];
}
//Calculate C(n,i)%2 for all i
StringBuilder sb = new StringBuilder();
for (int i=0; i<=n; ++i) {
if (i > 0 && i < n && num2s[n] > num2s[i] + num2s[n-i]) {
sb.append('0');
} else {
sb.append('1');
}
}
return sb.toString();
}
public static void main
(String[] args
) { for (int i=0; i<20; ++i) {
System.
out.
println(pascalString
(i
)); }
}
}
LyogcGFja2FnZSB3aGF0ZXZlcjsgLy8gZG9uJ3QgcGxhY2UgcGFja2FnZSBuYW1lISAqLwoKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CmltcG9ydCBqYXZhLmlvLio7CgovKiBOYW1lIG9mIHRoZSBjbGFzcyBoYXMgdG8gYmUgIk1haW4iIG9ubHkgaWYgdGhlIGNsYXNzIGlzIHB1YmxpYy4gKi8KY2xhc3MgSWRlb25lCnsKICAgIHN0YXRpYyBTdHJpbmcgcGFzY2FsU3RyaW5nKGludCBuKQogICAgewogICAgICAgIGludFtdIG51bTJzID0gbmV3IGludFtuKzJdOwogICAgICAgIC8vY2FsY3VsYXRlIG51bWJlciBvZiAyIGZhY3RvcnMgaW4gMS4uLm4KICAgICAgICBudW0yc1swXSA9IG51bTJzWzFdID0gMDsKICAgICAgICBmb3IgKGludCBpPTI7IGk8PW47ICsraSkgewogICAgICAgICAgICBpZiAoKGkmMSkgPT0gMCkgewogICAgICAgICAgICAgICAgbnVtMnNbaV0gPSBudW0yc1tpLzJdKzE7CiAgICAgICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgICAgICBudW0yc1tpXSA9IDA7ICAgICAgICAgICAgCiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgLy9jb252ZXJ0IHRvIG51bWJlciBvZiAyIGZhY3RvcnMgaW4gMSEgLi4uIG4hCiAgICAgICAgZm9yKGludCBpPTI7IGk8PW47ICsraSkgewogICAgICAgICAgICBudW0yc1tpXSArPSBudW0yc1tpLTFdOwogICAgICAgIH0KICAgICAgICAvL0NhbGN1bGF0ZSBDKG4saSklMiBmb3IgYWxsIGkKICAgICAgICBTdHJpbmdCdWlsZGVyIHNiID0gbmV3IFN0cmluZ0J1aWxkZXIoKTsKICAgICAgICBmb3IgKGludCBpPTA7IGk8PW47ICsraSkgewogICAgICAgICAgICBpZiAoaSA+IDAgJiYgaSA8IG4gJiYgbnVtMnNbbl0gPiBudW0yc1tpXSArIG51bTJzW24taV0pIHsKICAgICAgICAgICAgICAgIHNiLmFwcGVuZCgnMCcpOwogICAgICAgICAgICB9IGVsc2UgewogICAgICAgICAgICAgICAgc2IuYXBwZW5kKCcxJyk7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICAgICAgcmV0dXJuIHNiLnRvU3RyaW5nKCk7CiAgICB9CiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKSB7CiAgICAgICAgZm9yIChpbnQgaT0wOyBpPDIwOyArK2kpIHsKICAgICAgICAgICAgU3lzdGVtLm91dC5wcmludGxuKHBhc2NhbFN0cmluZyhpKSk7CiAgICAgICAgfSAgICAKICAgIH0KfQo=