#include #include #include #define clr(x)memset(x,0,sizeof(x)) const double eps = 1e-8; #define maxn 130 struct pos { double x, y; }p[maxn]; double d[maxn][maxn]; double dis(pos a, pos b) { return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y)); } double D; int n; int res[maxn]; bool ok() { int tot = 1; int q[maxn]; bool v[maxn]; int front = 0, rear = 0; int u, i; memset(v,false,sizeof(v)); v[0] = true; q[rear++] = 0; while(front < rear) { u = q[front++]; for(i=0; i0; i--) { res[i] = 0; if(!ok()){ res[i] = 1; if(i == n) { f = 1; break; } } } if(f == 1) { printf("-1\n"); continue; } int flag = 0; for(i=n-1; i>=0; i--) if(flag || res[i] !=0) { printf("%d",res[i]); flag = 1; } putchar('\n'); } return 0; }