题目链接:http://hihocoder.com/problemset/problem/1144
题意不允许001和11出现,那么一定是01交错出现,001不准出现则说明可以将多余的0补在后面。把几种情况分类讨论一下即可。
1 #include <bits/stdc++.h> 2 using namespace std; 3 4 int n, m; 5 6 int main() { 7 // freopen("in", "r", stdin); 8 while(~scanf("%d%d",&n,&m)) { 9 if(m - n >= 2) puts("NO"); 10 else if(m - n == 1) { 11 for(int i = 0; i < (n + m) / 2; i++) printf("10"); 12 printf("1 "); 13 } 14 else if(n - m == 1) { 15 for(int i = 0; i < (n + m) / 2; i++) printf("01"); 16 printf("0 "); 17 } 18 else if(n == m) { 19 for(int i = 0; i < n; i++) printf("01"); 20 printf(" "); 21 } 22 else { 23 for(int i = 0; i < m; i++) printf("01"); 24 for(int i = 0; i < n - m; i++) printf("0"); 25 printf(" "); 26 } 27 } 28 return 0; 29 }