题意很简单,注意别爆内存。
#include<iostream>
#include<cstdio>
#include<cstring>
typedef __int64 LL;
using namespace std ;
int main()
{
LL w,m,k,n1,n;
while(scanf("%I64d %I64d %I64d",&w,&m,&k)!=EOF){
n1=1;
n=m;
LL r=0,ans=0;
while(n){
n/=10;
n1*=10;
r++;
}
LL s,w1;
for(;w>0;n1*=10){
s=(n1-m);
w1=w/s/k/r; //防止超内存。
if(w1>=1){
ans+=s;
m=n1;
w-=s*k*r;
r++;
}
else{
ans+=w/(r*k);
break;
}
}
printf("%I64d\n",ans);
}
return 0 ;
}