Advertisement
Malinovsky239

Untitled

Mar 17th, 2012
133
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.66 KB | None | 0 0
  1. #include <iostream>
  2. #include <cstdio>
  3. #include <vector>
  4. #include <algorithm>
  5. using namespace std;
  6.  
  7.  
  8. long long st (int a, int b) {
  9.     if (b == 0) return 1;
  10.     if (b > 0) {
  11.         int k=1;
  12.         for (int i=0; i<b; i++)
  13.             k*=a;
  14.         return k;
  15.     }
  16. }
  17.  
  18. vector <int> v;
  19. int k,a,b,cnt;
  20. bool flag;
  21.  
  22. int main() {
  23.  
  24.   freopen("Input.in","r",stdin);
  25.  
  26.        flag=true;
  27.        cin >> a >> b;
  28.  
  29.        for (int i=1; i<st(2,a+b); i++) {
  30.             v.resize(0);
  31.             k=i;
  32.             for (int j=a+b-1; j>=0; j--)   {
  33.                 if (k >= st(2,j)) {
  34.                     v.push_back(1);
  35.                     k-= st(2,j);
  36.                 }
  37.                 else  v.push_back(0);
  38.             }
  39.  
  40.  
  41.            // for (int k=0; k<v.size(); k++) cout << v[k];
  42.            cnt=0;
  43.            for (int k=0; k<v.size(); k++)
  44.                   if (v[k] == 0 ) cnt++;
  45.            if (cnt != b) continue;
  46.  
  47.            
  48.            cnt=0;
  49.            for (int k=0; k<v.size(); k++)
  50.                   if (v[k] == 1 ) cnt++;
  51.            if (cnt != a) continue;
  52.  
  53.            if ((v[0]==1 && v[1]==0) || (v[v.size()-1]==1 && v[v.size()-2]==0))
  54.                   continue;
  55.  
  56.             flag = true;
  57.  
  58.            for (int k=1; k<v.size()-1; k++)
  59.             if (v[k]==1 && v[k-1]==0 && v[k+1]==0) {
  60.                 flag=false;
  61.                  break;
  62.             }
  63.            if (flag==false) continue;
  64.  
  65.  
  66.            for (int k=0; k<v.size()-1; k++)
  67.             if (v[k]==0 && v[k+1]==0) {
  68.                 flag=false;
  69.                 break;
  70.             }
  71.  
  72.             if (flag==false) continue;
  73.  
  74.             for (int h=v.size() - 1; h>=0; h--)
  75.                 cout << v[h];
  76.  
  77.            
  78.             cout << endl;            
  79.        }
  80.  
  81. return 0;
  82. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement