fork download
  1. #include<bits/stdc++.h>
  2. #define oo 999999999
  3. using namespace std;
  4. typedef long long int lli;
  5. lli gcd(lli a,lli b) {if(a==0||b==0) return 0;if(a==b) return a;if(a>b) return gcd(a-b,b);return gcd(a,b-a);}
  6. lli max(lli a,lli b) {if(a>b) return a; return b;}
  7. lli min(lli a,lli b) {if(a>b) return b; return a;}
  8. lli memo[1000000];
  9. lli answer(string s,lli len)
  10. {
  11. if(memo[len]!=-1) return memo[len];
  12. if(len<=1) return memo[len]=1;
  13. if(s[len-1]-'0' + (s[len-2]-'0')*10 <= 26)
  14. return memo[len]=answer(s,len-2) + answer(s,len-1);
  15. return memo[len]=answer(s,len-1);
  16. }
  17. int main()
  18. {
  19. ios_base::sync_with_stdio;
  20. cin.tie(NULL);
  21. string s;
  22. while(cin>>s && s[0]!='0')
  23. {
  24. for(lli i=0;s[i];i++) memo[i]=-1;
  25. memo[s.length()]=-1;
  26. cout<<answer(s,s.length())<<"\n";
  27. }
  28. return 0;
  29. }
Success #stdin #stdout 0s 23048KB
stdin
25114
1111111111
3333333333
0
stdout
6
89
1