一个简单的dfs就行了,建议降```cpp
#include <bits/stdc++.h>//深度优先搜索
#define N 100010
typedef long long ll;
using namespace std;
ll a, b, k;
ll sum1 = 0;
string s;
void dfs(int ans, ll sum2) {
if (ans == k) {
sum1 = max(sum1, sum2);
return;
}
int r = s[ans] - '0';
if (a >= 9 - r) {
a -= 9 - r;
dfs(ans + 1, sum2 * 10 + 9);
a += 9 - r;
} else {
int a2 = a;
a = 0;
dfs(ans + 1, sum2 * 10 + r + a2);
a = a2;
}
if (b >= r + 1 && r != 9) {
b -= r + 1;
dfs(ans + 1, sum2 * 10 + 9);
b += r + 1;
}
}
int main() {
cin >> s >> a >> b;
k = s.size();
dfs(0, 0);
cout << sum1 << endl;
}
黄