Submission #1206921
Source Code Expand
#include <iostream> #include <vector> #include <algorithm> #include <string> #define rep(a) for(int i=0;i<a;i++) #define nrep(a,b) for(int i=a;i<b;i++) #define mrep(a) for(int i=a;i>=0;i--) #define ll long long #define INF 1145141919 using namespace std; vector<ll> dp; ll check(ll n){ string str = to_string(n); rep(str.length()) if (str[i] == '4' || str[i] == '9') return true; return false; } ll solv(ll n){ ll ans = 0; rep(n) if (check(i + 1)) ans++; return ans; } ll pow(ll a, ll b){ ll ret = 1; rep(b) ret *= a; return ret; } ll fun(ll index, string str){ ll ans = 0, count = index-1; nrep(str.length()-index,str.length()) ans = ans + (pow(10, count--)*(str[i] - '0')); return ans; } ll solv_fast(ll n){ string str = to_string(n); ll length = str.length(); dp.resize(length); dp[0] = 0; nrep(1,length) dp[i] = dp[i - 1] * 8 + pow(10, i-1) * 2; ll ans = 0; rep(length){ if (str[i] - '0' < 4){ ans += ((str[i] - '0')*dp[length - i - 1]); } else if (str[i] - '0' == 4){ //ans += (3 * dp[length - i - 1]) + fun(length - i - 1, str); ans += (4 * dp[length - i - 1]) + fun(length - i - 1, str) + 1; break; } else if (str[i] - '0' < 9){ ans += (str[i] - '0')*dp[length - i - 1]+pow(10,length-1-i)-dp[length-i-1]; } else{ //ans += (3 * dp[length - i - 1]) + fun(length - i - 1, str); ans += (9 * dp[length - i - 1])+pow(10,length-1-i)-dp[length-i-1] + fun(length - i - 1, str) + 1; break; } } return ans; } //最長部分増加列 ll long_retu(ll n, const vector<ll> &root_array){ fill(dp.begin(), dp.end(), INF); rep(n) *lower_bound(dp.begin(), dp.end(), root_array[i]) = root_array[i]; return lower_bound(dp.begin(),dp.end(), INF) - dp.begin(); } int main(){ ll a, b; cin >> a>> b; ll ans = solv_fast(b) - solv_fast(a); if (check(a)) ans++; cout << ans << endl; /* ll n = 1979; cout << solv(n) << endl; cout << solv_fast(n) << endl; */ return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - 禁止された数字 |
User | untan |
Language | C++14 (GCC 5.4.1) |
Score | 100 |
Code Size | 2014 Byte |
Status | AC |
Exec Time | 1 ms |
Memory | 256 KB |
Judge Result
Set Name | Sample | Subtask1 | Subtask2 | ||||||
---|---|---|---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 30 / 30 | 70 / 70 | ||||||
Status |
|
|
|
Set Name | Test Cases |
---|---|
Sample | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt |
Subtask1 | subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt |
Subtask2 | subtask0_sample01.txt, subtask0_sample02.txt, subtask0_sample03.txt, subtask0_sample04.txt, subtask1_01.txt, subtask1_02.txt, subtask1_03.txt, subtask1_04.txt, subtask1_05.txt, subtask1_06.txt, subtask1_07.txt, subtask1_08.txt, subtask1_09.txt, subtask1_10.txt, subtask1_11.txt, subtask1_12.txt, subtask1_13.txt, subtask2_01.txt, subtask2_02.txt, subtask2_03.txt, subtask2_04.txt, subtask2_05.txt, subtask2_06.txt, subtask2_07.txt, subtask2_08.txt, subtask2_09.txt, subtask2_10.txt, subtask2_11.txt, subtask2_12.txt, subtask2_13.txt, subtask2_14.txt, subtask2_15.txt, subtask2_16.txt, subtask2_17.txt, subtask2_18.txt, subtask2_19.txt, subtask2_20.txt, subtask2_21.txt, subtask2_22.txt |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
subtask0_sample01.txt | AC | 1 ms | 256 KB |
subtask0_sample02.txt | AC | 1 ms | 256 KB |
subtask0_sample03.txt | AC | 1 ms | 256 KB |
subtask0_sample04.txt | AC | 1 ms | 256 KB |
subtask1_01.txt | AC | 1 ms | 256 KB |
subtask1_02.txt | AC | 1 ms | 256 KB |
subtask1_03.txt | AC | 1 ms | 256 KB |
subtask1_04.txt | AC | 1 ms | 256 KB |
subtask1_05.txt | AC | 1 ms | 256 KB |
subtask1_06.txt | AC | 1 ms | 256 KB |
subtask1_07.txt | AC | 1 ms | 256 KB |
subtask1_08.txt | AC | 1 ms | 256 KB |
subtask1_09.txt | AC | 1 ms | 256 KB |
subtask1_10.txt | AC | 1 ms | 256 KB |
subtask1_11.txt | AC | 1 ms | 256 KB |
subtask1_12.txt | AC | 1 ms | 256 KB |
subtask1_13.txt | AC | 1 ms | 256 KB |
subtask2_01.txt | AC | 1 ms | 256 KB |
subtask2_02.txt | AC | 1 ms | 256 KB |
subtask2_03.txt | AC | 1 ms | 256 KB |
subtask2_04.txt | AC | 1 ms | 256 KB |
subtask2_05.txt | AC | 1 ms | 256 KB |
subtask2_06.txt | AC | 1 ms | 256 KB |
subtask2_07.txt | AC | 1 ms | 256 KB |
subtask2_08.txt | AC | 1 ms | 256 KB |
subtask2_09.txt | AC | 1 ms | 256 KB |
subtask2_10.txt | AC | 1 ms | 256 KB |
subtask2_11.txt | AC | 1 ms | 256 KB |
subtask2_12.txt | AC | 1 ms | 256 KB |
subtask2_13.txt | AC | 1 ms | 256 KB |
subtask2_14.txt | AC | 1 ms | 256 KB |
subtask2_15.txt | AC | 1 ms | 256 KB |
subtask2_16.txt | AC | 1 ms | 256 KB |
subtask2_17.txt | AC | 1 ms | 256 KB |
subtask2_18.txt | AC | 1 ms | 256 KB |
subtask2_19.txt | AC | 1 ms | 256 KB |
subtask2_20.txt | AC | 1 ms | 256 KB |
subtask2_21.txt | AC | 1 ms | 256 KB |
subtask2_22.txt | AC | 1 ms | 256 KB |