fork download
  1. #include <iostream>
  2. #include <bits/stdc++.h>
  3. using namespace std;
  4. long long int dp[5002],len;
  5. string s;
  6. int solve(int i){
  7. if(i==0 || i==1) return 1;
  8. if(!dp[i]){
  9. if(s[i-1]-'0' >0) dp[i]+=solve(i-1);
  10. if(s[i-2]-'0' <2 || (s[i-1]-'0'<=6)) dp[i]+=solve(i-2);
  11. }
  12. return dp[i];
  13. }
  14. int main() {
  15. cin>>s;
  16. while(s[0]-'0'){
  17. // cout<<s[0]-'0'<<endl;
  18. len=s.length();
  19. memset(dp,0,sizeof(dp));
  20. cout<<solve(len-1)<<endl;
  21. cin>>s;
  22. }
  23. // your code goes here
  24. return 0;
  25. }
Success #stdin #stdout 0s 15272KB
stdin
25114
1111111111
3333333333
0
stdout
5
55
55