fork(1) download
  1. #include <iostream>
  2. #include <string>
  3.  
  4. int nv(std::string s)
  5. {
  6. if (s.size() == 1) return 1;
  7. if (s.size() == 2)
  8. {
  9. if (s[0] == '0' ) return 1;
  10. if (s[0] > '3' ) return 1;
  11. if (s[0] == '3')
  12. if(s[1] > '3') return 1;
  13. return 2;
  14. }
  15.  
  16. std::string temp = s.substr(1);
  17. int sum = nv( temp );
  18.  
  19. if ( s[0] == '0' ) return sum;
  20. if (s[0] > '3' ) return sum;
  21. if ( s[0] == '3' )
  22. if ( s[0] > '3' ) return sum;
  23.  
  24. temp = s.substr(2);
  25. sum += nv( temp );
  26.  
  27. return sum;
  28. }
  29.  
  30. int main() {
  31.  
  32. std::string input;
  33.  
  34. std::getline(std::cin, input);
  35.  
  36. std::cout << nv(input);
  37.  
  38. return 0;
  39. }
Success #stdin #stdout 0s 3480KB
stdin
1025
stdout
4