将所有数字放进数组排个序
贪心的选择先修改小的数字,将其修改成9,这样可以最大化k步之后的数字和
然后模拟一下就可以了
#include <cstdio>
#include <iostream>
#include <cstring>
#include <string>
#include <cmath>
#include <algorithm>
#include <cstdlib>
#include <utility>
#include <map>
#include <stack>
#include <set>
#include <vector>
#include <queue>
#include <deque>
#define x first
#define y second
#define mp make_pair
#define pb push_back
#define LL long long
#define Pair pair<int,int>
#define LOWBIT(x) x & (-x)
using namespace std;
const int MOD=1e9+7;
const int INF=0x7ffffff;
const int magic=348;
char s[200048];
int k;
int sum=0,l;
int a[200048];
int main ()
{
int i;
scanf("%d",&k);
scanf("%s",s+1);
l=strlen(s+1);
for (i=1;i<=l;i++)
{
sum+=s[i]-'0';
a[i]=s[i]-'0';
}
sort(a+1,a+l+1);
if (sum>=k)
{
printf("0\n");
return 0;
}
for (i=1;i<=l;i++)
{
sum+=9-a[i];
if (sum>=k)
{
printf("%d\n",i);
return 0;
}
}
return 0;
}