题目
原题链接:B. The number on the board
题意
有一个数字n,问最少改变几位能>=k。
排序后一位一位检查,到满足条件为止。
代码
#include<bits/stdc++.h>
using namespace std;
int main() {
int k,sum=0,ans=0;
char n[1000000];
cin>>k>>n;
int l=strlen(n);
sort(n,n+l);
for(int i=0; i<l; i++) {
sum+=n[i]-'0';
}
if(sum>=k){
printf("0\n");
return 0;
}
for(int i=0; i<l; i++) {
if((sum-(n[i]-'0')+9)>=k && n[i]!='9') {ans++;break;}
else if(n[i]!='9') {sum=sum-(n[i]-'0')+9; ans++;}
}
printf("%d\n",ans);
return 0;
}