Submission #596919

#TimeUsernameProblemLanguageResultExecution timeMemory
596919HanksburgerPalindrome-Free Numbers (BOI13_numbers)C++17
100 / 100
1 ms240 KiB
#include <bits/stdc++.h> using namespace std; #define ll long long ll p[20]; ll f(ll n) { if (n<=9) return n+1; stringstream ss; string s; ss << n; ss >> s; ll len=s.length(); ll ans=10+81*(p[len-2]-1)/7+(s[0]-'1')*9*p[len-2]+(s[1]-'0'-(s[0]<s[1]))*p[len-2]; if (s[0]==s[1]) return ans; for (ll i=2; i<len; i++) { ans+=max(0, s[i]-'0'-(s[i-1]<s[i])-(s[i-2]<s[i]))*p[len-i-1]; if (s[i-1]==s[i] || s[i-2]==s[i]) return ans; } return ans+1; } int main() { ios::sync_with_stdio(0); cin.tie(0); cout.tie(0); p[0]=1; for (ll i=1; i<20; i++) p[i]=p[i-1]*8; ll a, b; cin >> a >> b; cout << f(b)-f(a-1); return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...