fork download
  1. #include <iostream>
  2. #include <vector>
  3. #include <string>
  4. using namespace std;
  5. long long check(vector<long long> &ans,int i,string st)
  6. {
  7. if(i<=0) return 1;
  8. if(ans[i]==-1)
  9. {
  10. long long b1,b2;b1=0;b2=0;
  11. if(st[i]!='0')
  12. b1=check(ans,i-1,st);
  13. if(i!=0)
  14. {
  15. if(st[i-1]=='1')
  16. b2=check(ans,i-2,st);
  17. else if(st[i-1]=='2'&&(st[i]>='0'&&st[i]<='6'))
  18. b2=check(ans,i-2,st);
  19. }
  20. ans[i]=b1+b2;
  21. }
  22. return ans[i];
  23. }
  24. int main() {
  25. string st;
  26. cin>>st;
  27. int n=st.length();
  28. vector<long long> ans;
  29. for(int i=0;i<n;i++)
  30. ans.push_back(-1);
  31. long long a=check(ans,n-1,st);
  32. cout<<a;
  33. return 0;
  34. }
Success #stdin #stdout 0s 16064KB
stdin
3333333333
stdout
1