91pts求调,WA on #7
查看原帖
91pts求调,WA on #7
790274
InQueue楼主2023/8/1 13:33

rt,代码:

#include<bits/stdc++.h>
#define int long long
#define mkpr make_pair
#define psbk push_back
#define fst first
#define scd second
using namespace std;
const int inf=0x3f3f3f3f;
typedef pair<int,int> pii;
string s;
int n,wws,ans=inf;
int cal(int l,int r)
{
	int ret=0;
	for(int i=l;i<=r;i++)
	{
		ret=ret*10+s[i]-'0';
	}
	return ret;
}
void srh(int x,int gs,int sum,int lstadd)
{
	if(sum>n||gs>=ans)
	{
		return;
	}
	if(x==s.size()-1)
	{
		if(sum+cal(lstadd+1,s.size()-1)==n)
		{
			ans=min(ans,gs);
		}
		return;
	}
	if(x-lstadd<=wws)
	{
		srh(x+1,gs+1,sum+cal(lstadd+1,x),x);
	}
	srh(x+1,gs,sum,lstadd);
}
signed main()
{
	cin>>s>>n;
	wws=(int)(log10(n))+1;
	s=" "+s;
	srh(1,0,0,0);
	cout<<(ans>1000?-1:ans);
	return 0;
}
2023/8/1 13:33
加载中...