40分求助
查看原帖
40分求助
780763
chinese_hacker楼主2023/8/9 16:48
#include<iostream>
#include<string>
#include<cstring>
using namespace std;
int s1,s2,e1,e2,n;
int w[10005],v[10005],u[10005],f[10005];
int main()
{
	cin>>s1;
	getchar();
	cin>>s2>>e1;
	getchar();
	cin>>e2>>n;
	int t;
	if(e2<s2)
	{
		t=(e1-1-s1)*60+60-s2+e2;
	}
	if(e2==s2)
	{
		t=(e1-s1)*60;
	}
	if(e2>s2)
	{
		t=(e1-s1)*60+e2-s2;
	}
	for(int i=1;i<=n;i++)
	{
		cin>>w[i]>>v[i]>>u[i];
	}
	for(int i=1;i<=n;i++)
	{
		if(u[i]==0)
		{
			for(int j=w[i];j<=t;j++)
			{
				f[j]=max(f[j],f[j-w[i]]+v[i]);
			}
		}
		else
		{
			for(int j=100;j>=w[i];j--)
			{
				for(int k=1;k<=u[i];k++)
				{
					f[j]=max(f[j],f[j-k*w[i]]+v[i]);
				}
			}
		}
	}
	int ans=-1;
	for(int i=1;i<=t;i++)
	{
//		cout<<f[i]<<' ';
		ans=max(ans,f[i]);
	}
	cout<<ans;
	return 0;
}
2023/8/9 16:48
加载中...