只能过一半,求大佬指点
查看原帖
只能过一半,求大佬指点
1189413
PURE_LOVE楼主2024/4/7 20:12
#include<bits/stdc++.h>
using namespace std;
string arr;
int A, B;
int n = 0; 
vector<long long>brr;
long long daan(string xrr)
{
	long long sum = 0;
	for (int i = 0; i < n; i++)
	{
		sum += (xrr[i]-48) * pow(10, n - 1 - i);
	}
	return sum;
}
void hanshu(int i)
{
	int a = arr[i]-48;
	if (i >= n)
	{
		return;
	}
	if (A == 0 && B == 0)
	{
		return ;
	}
	string mrr(arr);
	int x = a + 1;
	int y = 9 - a;
	if (B>=x)
	{
		arr[i] += y;
		B -= x;
		brr.push_back(daan(arr));
		hanshu(i + 1);
		arr[i] -= y;
		B += x;
	}
	if (A > 0)
	{
		int t = min(A, y);
		arr[i] += t;
		A -= t;
		brr.push_back(daan(arr));
		hanshu(i + 1);
	}
	return;
}
int main()
{
	cin >> arr;
	n= arr.size();
	brr.push_back(daan(arr));
	scanf("%d%d", &A, &B);
	hanshu(0);
	int m = brr.size();
	sort(brr.begin(), brr.end());
	printf("%lld", brr[m-1]);
}
2024/4/7 20:12
加载中...