比赛 EYOI与SBOI开学欢乐赛11th 评测结果 RRRRRRRRRR
题目名称 WHZ 的数字 最终得分 0
用户昵称 HeSn 运行时间 0.943 s
代码语言 C++ 内存使用 51.51 MiB
提交时间 2022-10-14 20:43:59
显示代码纯文本
#include<bits/stdc++.h>
using namespace std;
#define int long long
const int MAXN = 2000010;
int n, k, a[MAXN], b[MAXN], c[MAXN];
signed main() {
    freopen("bzoj_1040.in", "r", stdin);
    freopen("bzoj_1040.out", "w", stdout);
	b[0] = 1;
	a[0] = 1;
	c[0] = -1;
	for(int i = 1; i < MAXN; i ++) {
		int x = i;
		while(x) {
			if(x % 10 == 0) {
				a[i] ++;
			}
			x /= 10;
		}
		b[i] = b[i - 1] + a[i];
		c[b[i]] = i;
	}
	while(cin >> n >> k) {
		if(n < MAXN) {
			cout << c[b[n] - k] + 1 << endl;
			continue;
		}
		int sum = 0;
		for(int i = n; i > 0; i --) {
			int x = i;
			while(x) {
				sum += (x % 10 == 0);
				x /= 10;
			}
			if(sum == k) {
				cout << i << endl;
				break;
			}
		}
		if(sum < k) {
			cout << 0 << endl;
		}
	}
	return 0;
}