Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cstdio>
- #include <vector>
- #include <algorithm>
- using namespace std;
- long long st (int a, int b) {
- if (b == 0) return 1;
- if (b > 0) {
- int k=1;
- for (int i=0; i<b; i++)
- k*=a;
- return k;
- }
- }
- vector <int> v;
- int k,a,b,cnt;
- bool flag;
- int main() {
- freopen("Input.in","r",stdin);
- flag=true;
- cin >> a >> b;
- for (int i=1; i<st(2,a+b); i++) {
- v.resize(0);
- k=i;
- for (int j=a+b-1; j>=0; j--) {
- if (k >= st(2,j)) {
- v.push_back(1);
- k-= st(2,j);
- }
- else v.push_back(0);
- }
- // for (int k=0; k<v.size(); k++) cout << v[k];
- cnt=0;
- for (int k=0; k<v.size(); k++)
- if (v[k] == 0 ) cnt++;
- if (cnt != b) continue;
- cnt=0;
- for (int k=0; k<v.size(); k++)
- if (v[k] == 1 ) cnt++;
- if (cnt != a) continue;
- if ((v[0]==1 && v[1]==0) || (v[v.size()-1]==1 && v[v.size()-2]==0))
- continue;
- flag = true;
- for (int k=1; k<v.size()-1; k++)
- if (v[k]==1 && v[k-1]==0 && v[k+1]==0) {
- flag=false;
- break;
- }
- if (flag==false) continue;
- for (int k=0; k<v.size()-1; k++)
- if (v[k]==0 && v[k+1]==0) {
- flag=false;
- break;
- }
- if (flag==false) continue;
- for (int h=v.size() - 1; h>=0; h--)
- cout << v[h];
- cout << endl;
- }
- return 0;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement