#include <iostream>
#include <cstdio>
using namespace std;
int n, m;
int main(int argc, char const *argv[])
{
while (~scanf("%d%d", &n, &m))
{
if (m < n - 1 || m > 2 * n + 2) printf("-1");
else if (n >= m)
{
for (int i = 0; i < m; i++) printf("01");
for (int i = 0; i < n - m; i++) printf("0");
}
else if (2 * n >= m)
{
for (int i = 0; i < m - n; i++) printf("110");
for (int i = 0; i < 2 * n - m; i++) printf("10");
}
else
{
for (int i = 0; i < n; i++) printf("110");
for (int i = 0; i < m - 2 * n; ++i) printf("1");
}
printf("\n");
}
return 0;
}
n个0,m个1,构造一个序列,不能出现“00”或者“111”。
举例分析,注意无解的情况。