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
AC × 4
AC × 16
AC × 39
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