P1071 01字符串的交叉安排

题目描述

你有 \(n(1 \le n \le 10^6)\) 个字符‘0’ 和 \(m(1 \le m \le 10^6)\) 个字符‘1’。你需要使用这些字符拼接成一个01字符串,使得满足如下两个条件:

  1. 字符串中不能出现连续的两个‘0’;
  2. 字符串中不能出现连续的三个‘1’。

请问这样的字符串能够拼接出来。
如果不存在这样的拼接方案,输出“-1”;否则,输出所有拼接方案中字典序最小的方案。
比如,如果 \(n=1,m=2\) ,此时可选的方案有“011”、“101”、“110”,其中字典序最小的方案是“011”,所以输出“011”。

输入格式

输入一行包含两个正数 \(n\)\(m(1 \le n,m \le 10^6)\) ,以一个空格分隔,分别用于表示字符‘0’和‘1’出现的次数。

输出格式

如果不存在合法的拼接方案,输出“-1”;否则,输出字典序最小的拼接结果。

样例输入1

1 2

样例输出1

011

样例输入2

2 2

样例输出2

0101

样例输入3

3 2

样例输出3

01010

样例输入4

4 2

样例输出4

-1
posted @ 2019-10-29 15:53  problems  阅读(127)  评论(0)    收藏  举报