#include <iostream>
#include <cstring>
#include <cstdio>
using namespace std;
typedef unsigned long long int LL;
LL sates[25]={0,10,90,900,9000,90000,900000,9000000,90000000,900000000,9000000000,
90000000000,900000000000,9000000000000,90000000000000,900000000000000,9000000000000000,
90000000000000000,900000000000000000,9000000000000000000};
LL w,m,k;
int getlen(LL x)
{
int cnt=0;
while(x) cnt++,x/=10;
return cnt;
}
LL E(int x)
{
LL e=1;
while(x) e*=10,x--;
return e;
}
int main()
{
cin>>w>>m>>k;
int len=getlen(m),pos=len;
if(w<k*len) {puts("0");return 0;}
LL res=E(len)-m;
if(w>res*k*len)
{
w-=res*k*pos;
LL W=w;
while(W>0)
{
w=W;
pos++;
if(W>k*pos*sates[pos]) W-=k*pos*sates[pos];
else break;
}
}
res=w;
LL low=E(pos-1),mid;
if(pos==len) low=m;
mid=low+res/(k*pos)-1;
cout<<mid-m+1<<endl;
return 0;
}
CodeForces 373 B. Making Sequences is Fun
最新推荐文章于 2016-10-05 13:59:06 发布