fork download
  1. #include<bits/stdc++.h>
  2. //#define int long long
  3. //#pragma GCC optimize("O3")
  4. //#pragma GCC optimize("unroll-loops")
  5. //#pragma GCC target("avx2")
  6. #define pii pair<int,int>
  7. #define fi first
  8. #define se second
  9. using namespace std;
  10. using ll = long long;
  11. const int maxN = 2e5 + 5;
  12. const pii mod = {998244353,1e9+7};
  13. const int base = 31;
  14.  
  15. int n;
  16. string s;
  17. vector<string> vc;
  18.  
  19. void BackTrack(int idx)
  20. {
  21. if(idx == n) /// 0->n-1; den n là neo
  22. {
  23. /// kiểm tra xâu s
  24. int cnt = 0;
  25. for(int i = 1; i < n; i++)
  26. {
  27. if(s[i] == '1' && s[i-1] == '0')
  28. {
  29. cnt++;
  30. if(cnt > 1) break;
  31. }
  32. }
  33. if(cnt <= 1)
  34. vc.push_back(s);
  35. return;
  36. }
  37. s[idx] = '0';
  38. BackTrack(idx+1);
  39. s[idx] = '1';
  40. BackTrack(idx+1);
  41. }
  42.  
  43. void Solve()
  44. {
  45. cin >> n;
  46. s.resize(n);
  47. BackTrack(0);
  48. cout << vc.size() <<'\n';
  49. for(string x : vc)
  50. {
  51. cout << x <<'\n';
  52. }
  53. }
  54.  
  55. int32_t main()
  56. {
  57. ios_base::sync_with_stdio(false);
  58. cin.tie(nullptr);
  59. //freopen("pump.in","r",stdin);
  60. //freopen("pump.out","w",stdout);
  61. int tt;
  62. tt = 1;
  63. //cin >> tt;
  64. for (int i = 1; i <= tt; i++)
  65. Solve();
  66.  
  67. return 0;
  68. }
  69.  
Success #stdin #stdout 0s 5308KB
stdin
Standard input is empty
stdout
1