WA 20tps求调
查看原帖
WA 20tps求调
1398428
gaozixuan666楼主2025/2/5 21:26
#include<bits/stdc++.h>
using namespace std;
int a,b;
string s;
inline string dfs(string& ss,int now,int x,int y){
	if(now==s.size())return ss;
	if(ss[now]-'0'<'9'-ss[now]&&ss[now]-'0'<=y){
		ss[now]='9';
		return dfs(ss,now+1,x,y-ss[now]+'0');
	}else if(ss[now]-'0'>'9'-ss[now]&&'9'-ss[now]<=x){
		ss[now]='9';
		return dfs(ss,now+1,x-'9'+ss[now],y);
	}else if(ss[now]-'0'=='9'-ss[now]){
		string ss1=ss;
		if(x>='9'-ss[now]){
			ss[now]='9';
			ss1=dfs(ss,now+1,x-'9'+ss[now],y);
		}else{
			ss[now]+=x;
			ss1=dfs(ss,now+1,0,y);
		}
		if(y>=ss[now]-'0'){
			ss[now]='9';
			ss1=max(ss1,dfs(ss,now+1,x,y-ss[now]+'0'));
		}
		return ss1;
	}else {
		ss[now]+=x;
		return dfs(ss,now+1,0,y);
	}
}
signed main(){
	cin>>s>>a>>b;
	cout<<dfs(s,0,a,b);
}
2025/2/5 21:26
加载中...