#include <iostream> using namespace std; using ULL = unsigned long long; static inline ULL jedna(ULL n); static inline ULL dwie(ULL n); static inline ULL jedna(ULL n) { return n == 0 ? 1 : (n % 10 + 1) * (jedna(n / 10) + dwie(n / 10)); } static inline ULL dwie(ULL n) { if (n == 0) return 0; ULL a = n % 100; return a > 18 || a < 10 ? 0 : (19 - a) * (jedna(n / 100) + dwie(n / 100)); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ULL n; cin >> n; cout << jedna(n) + dwie(n) << '\n'; return 0; }
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 | #include <iostream> using namespace std; using ULL = unsigned long long; static inline ULL jedna(ULL n); static inline ULL dwie(ULL n); static inline ULL jedna(ULL n) { return n == 0 ? 1 : (n % 10 + 1) * (jedna(n / 10) + dwie(n / 10)); } static inline ULL dwie(ULL n) { if (n == 0) return 0; ULL a = n % 100; return a > 18 || a < 10 ? 0 : (19 - a) * (jedna(n / 100) + dwie(n / 100)); } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); ULL n; cin >> n; cout << jedna(n) + dwie(n) << '\n'; return 0; } |