fork download
  1. #include <bits/stdc++.h>
  2. using namespace std;
  3. #define ll long long int
  4. #define fast() ios::sync_with_stdio(0)
  5. ll zero[105],one[105];
  6. long long int do_it(int n,string p)
  7. {
  8. if(p.size()==1)
  9. {
  10. if(p=="0")
  11. return zero[n];
  12. else
  13. return one[n];
  14. }
  15. if(n==0)
  16. return 0;
  17. int l=p.size();
  18. for(int i=0;i<p.size()-1;i++)
  19. {
  20. if(p[i]=='0' && p[i+1]=='0')
  21. return 0;
  22. }
  23. string s=NULL;
  24. int i;
  25. if(p[l-1]=='0')
  26. {
  27. if(p[0]=='0')
  28. {
  29. s=s+'1';
  30. i=1;
  31. }
  32. for(;i<l;)
  33. {
  34. if(p[i+1]=='0')
  35. {
  36. s=s+'1';
  37. i+=2;
  38. }
  39. else
  40. {
  41. s=s+'0';
  42. i++;
  43. }
  44. }
  45. }
  46. return do_it(n-1,s);
  47. }
  48. else
  49. {
  50. if(p[0]=='0')
  51. {
  52. s=s+'1';
  53. for(int i=1;i<l-1;)
  54. {
  55. if(p[i+1]=='0')
  56. {
  57. s=s+'1';
  58. i+=2;
  59. }
  60. else
  61. {
  62. s=s+'0';
  63. i++;
  64. }
  65. }
  66. }
  67. else
  68. {
  69. for(int i=0;i<l-1;)
  70. {
  71. if(p[i+1]=='0')
  72. {
  73. s=s+'1';
  74. i+=2;
  75. }
  76. else
  77. {
  78. s=s+'0';
  79. i++;
  80. }
  81. }
  82. }
  83. return do_it(n-1,s+'0') + do_it(n-1,s+'1');
  84. }
  85. }
  86. int main()
  87. {
  88. fast();
  89. zero[0]=1;
  90. zero[1]=0;
  91. one[0]=0;
  92. one[1]=1;
  93. for(int i=2;i<105;i++)
  94. {
  95. zero[i]=zero[i-1]+zero[i-2];
  96. one[i]=one[i-1]+one[i-2];
  97. }
  98. int n;
  99. while(cin>>n)
  100. {
  101. string p;
  102. cin>>p;
  103. do_it(n,p);
  104. }
  105. return 0;
  106.  
  107. }
  108. /*6
  109. 10
  110. 7
  111. 10
  112. 6
  113. 01
  114. 6
  115. 101
  116. 96
  117. 10110101101101*/
Compilation error #stdin compilation error #stdout 0s 3456KB
stdin
6
10
7
10
6
01
6
101
96
10110101101101
compilation info
prog.cpp:48:6: error: expected unqualified-id before 'else'
      else
      ^
stdout
Standard output is empty