记录编号 607798 评测结果 WWWWWWWWWW
题目名称 2949.[SYOI 2018] WHZ 的数字 最终得分 0
用户昵称 Gravatar我常常追忆未来 是否通过 未通过
代码语言 C++ 运行时间 0.029 s
提交时间 2025-10-21 07:59:58 内存使用 3.84 MiB
显示代码纯文本
#include <bits/stdc++.h>
using namespace std;
#define ll long long 
ll n,k,f[50],ten[50];
ll num[30];
ll work(int x){
	ll len=0;
	while(x){
		num[++len]=x%10;
		x=x/10;
	}
	ll cnt=0;
	for(int i=len;i>=1;i--){
		cnt+=f[i-1]*num[i];
		cnt+=ten[i-1];
		ll lownum=0;
		for(int j=i-1;j>=1;j--){
			lownum=lownum*10+num[j];
		}
		if(num[i]==0){
			cnt+=lownum+1;
		}
		
		cnt-=ten[i-1];
	}
	return cnt;
}
int main(){
	ten[0]=1;
	for(int i=1;i<=60;i++){
		f[i]=f[i-1]*10+ten[i-1];
		ten[i]=ten[i-1]*10;
	}
	while(scanf("%lld%lld",&n,&k)!=EOF){
		ll l=0,r=n;
		ll hs=work(n);
		while(l<=r){
			ll mid=l+r>>1;
			if(hs-work(mid)>=k){
				l=mid+1;
			}
			else{
				r=mid-1;
			}
		}
		printf("%lld\n",l);
	}

	return 0;
}