只有70分,蓝桥云课过了八个点,对拍拍不出来,求大佬帮看
查看原帖
只有70分,蓝桥云课过了八个点,对拍拍不出来,求大佬帮看
1189413
PURE_LOVE楼主2024/4/8 22:28
#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;
	}
	int x = a + 1;
	int y = 9 - a;
	int book = 0;
	if (a == 9)
	{
		hanshu(i + 1);
		return;
	}
	if (B >= x)
	{
		book = 1;
		arr[i] += y;
		B -= x;
		brr.push_back(daan(arr));
		hanshu(i + 1);
		arr[i] -= y;
		B += x;
	}
	if (A > 0)
	{
		book = 1;
		int t = min(A, y);
		arr[i] += t;
		A -= t;
		brr.push_back(daan(arr));
		hanshu(i + 1);
		arr[i] -= t;
		A += t;
	}
	if (book == 0)
	{
		hanshu(i + 1);
	}
	return;
}
int main()
{
	cin >> arr >> A >> B;
	n = arr.size();
	brr.push_back(daan(arr));
	hanshu(0);
	int m = brr.size();
	sort(brr.begin(), brr.end());
	printf("%lld", brr[m-1]);
}```
2024/4/8 22:28
加载中...