Advertisement
Malinovsky239

Untitled

Mar 17th, 2012
126
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 0.94 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3.  
  4. using namespace std;
  5.  
  6. int cnt[2], s[30], a, b;
  7.  
  8. int main() {
  9.     freopen("input.txt", "r", stdin);
  10.     cin >> a >> b;
  11.    
  12.     int top_mask = 1;
  13.     for (int i = 0; i < a + b; i++)
  14.         top_mask *= 2;
  15.  
  16.     for (int i = 0; i < top_mask; i++) {
  17.        
  18.         cnt[0] = cnt[1] = 0;
  19.         for (int j = 0, k = 1; j < a + b; j++, k *= 2) {
  20.             s[j] = ((k & i) != 0);
  21.             cnt[ s[j] ]++;
  22.         }      
  23.  
  24.         if (cnt[0] == b && cnt[1] == a) {
  25.             bool ok = true;
  26.  
  27.             int l = a + b;
  28.  
  29.             for (int j = 1; j < l; j++) {
  30.                 if (s[j] + s[j - 1] == 0) {
  31.                     ok = false;                            
  32.                     break;
  33.                 }
  34.             }
  35.  
  36.             for (int j = 1; j < l - 1; j++) {
  37.                 if (s[j] == 1 && s[j - 1] + s[j + 1] == 0) {
  38.                     ok = false;
  39.                     break;
  40.                 }
  41.             }
  42.  
  43.             if ((s[0] == 1 && s[1] == 0) || (s[l - 1] == 1 && s[l - 2] == 0))
  44.                 ok = false;
  45.            
  46.             if (ok) {
  47.                 for (int j = 0; j < l; j++)
  48.                     cout << s[j];
  49.                 cout << endl;
  50.             }
  51.         }
  52.     }
  53.  
  54.     return 0;
  55. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement