Archives
Trending
Support
Login
clear text
XML
Django
JavaScript
MATLAB
C
C++
C#
Python
SQL
Shell
Bash
Markdown
YAML
JSON
HTML
CSS
PHP
Java
Ruby
Go
Rust
Swift
Kotlin
Arduino
TypeScript
Perl
Autohotkey
Lua
SQF
R
Scala
Haskell
Groovy
Dart
Clojure
VB.NET
Objective-C
PowerShell
Bash
CoffeeScript
Verilog
using ll = long long; class Solution { public: ll dp[20][2][2][11][11]; string s1, s2; string s; int n; ll digit(ll i, bool f, bool started, int prev1, int prev2) { if (i == n) return 0; ll& ret = dp[i][f][started][prev1 + 1][prev2 + 1]; if (ret != -1) return ret; ll res = 0; ll R = f ? 9 : (s[i] - '0'); for (int dgt = 0; dgt <= R; dgt++) { bool nf = f || (dgt < (s[i] - '0')); bool nstar = started || (dgt != 0); int add = 0; int np1, np2; if (!nstar) { np1 = -1, np2 = -1; } else if (!started && nstar) { np1 = -1; np2 = dgt; } else { np1 = prev2; np2 = dgt; if (prev1 != -1 && prev2 != -1 && nstar) { if ((prev1 < prev2 && prev2 > dgt) || (prev1 > prev2 && prev2 < dgt)) add = 1; } } res += add + digit(i + 1, nf, nstar, np1, np2); } return ret = res; } ll calc(ll x) { if (x <= 0) return 0; s = to_string(x); n = s.size(); memset(dp, -1, sizeof(dp)); return digit(0, 0, 0, -1, -1); } long long totalWaviness(long long num1, long long num2) { return calc(num2) - calc(num1 - 1); } };
Mark as private (unlisted)
for 30 minutes
for 6 hours
for 1 day
for 1 week
for 1 month
for 1 year
everlasting (like CCCP)