如果这么写会 WA。
bool check(ll k){
k*=9;ll res=0;
memset(b,0,sizeof(b));
for(ll i=1;i<=n;i++)b[i]=a[i]*9;b[1]+=k;
for(ll i=1;b[i];i++)
b[i+1]+=b[i]/10,b[i]%=10,res+=b[i];
return res<=k;
}
但如果我只算前 n 位就 A 了,代码:
bool check(ll k){
k*=9;ll res=0;
for(ll i=1;i<=n;i++)b[i]=a[i]*9;
b[1]+=k;
for(ll i=1;i<=n;i++)
b[i+1]+=b[i]/10,b[i]%=10,res+=b[i];
return res<=k;
}
不大懂。