1222: 01串plus
Time Limit: 1 Sec Memory Limit: 128 MBSubmit: 35 Solved: 12
[ Submit][ Status][ Web Board]
Description
给定两个整数n和m,求是否存在恰好包含n个0和m个1的01串S,使得S中不存在子串"001"和"11"。
如果存在符合条件的01串则输出字典序最小的S,否则输出NO。
Input
一行两个整数,表示n和m。(0<=n,m<=100000,0<n+m)
Output
一行一个字符串,为字典序最小的S或者NO。
Sample Input
2 3
Sample Output
10101
HINT
Source
解析:直接摸拟即可。
AC代码:
#include <bits/stdc++.h>
using namespace std;
int main(){
int n, m;
while(~scanf("%d%d", &n, &m)){
if(n >= m){
for(int i=0; i<m; i++) printf("01");
for(int i=0; i<n-m; i++) printf("0");
puts("");
}
else if(m - n == 1){
for(int i=0; i<n; i++) printf("10");
puts("1");
}
else puts("NO");
}
return 0;
}