2972021-08-20 17:29:09Babják PéterBefektetéscpp11Futási hiba 0/401ms1212 KiB
#include <bits/stdc++.h>
#define N 4010
using namespace std;
struct d
{
	int a,e,t;	
};
struct cmp
{
	bool operator()(const d &p, const d &q)
	{
		return p.t<q.t;
	}	
};
int dp[N][2];
int atdp[N][N];
signed main()
{
	int n,k;
	cin>>n>>k;
	vector<d>h(n);
	for(int i=0;i<n;i++)
	{
		int a,b,c;
		cin>>a>>b>>c;
		h[i].a=a;
		h[i].e=b;
		h[i].t=c;
	}
	sort(h.begin(),h.end(),cmp());
	for(int i=1;i<=k;i++)
	{
		int z;
		for(int j=1;j<=n;j++)
		{
			z=i-h[j-1].a;
			if(z>=0) atdp[i][j]=max(atdp[i][j-1],atdp[z][j-1]+h[j-1].e);
			else atdp[i][j]=atdp[i][j-1];
		}
	}
	for(int i=1;i<=k;i++)
	{
		for(int j=1;j<=n;j++)
		{
			bool b=j&1;
			int z=i-h[j-1].a-h[j-1].t;
			if(z>=0) dp[i][b]=max(dp[i][!b],atdp[z][j-1]+h[j-1].e);
			else dp[i][b]=dp[i][!b];
		}
	}
	
	cout<<dp[k][n&1];
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/40
1Futási hiba0/01ms1124 KiB
2Futási hiba0/01ms1156 KiB
3Futási hiba0/21ms1144 KiB
4Futási hiba0/21ms1148 KiB
5Futási hiba0/11ms1148 KiB
6Futási hiba0/21ms1212 KiB
7Futási hiba0/21ms1212 KiB
8Futási hiba0/21ms1080 KiB
9Futási hiba0/21ms1080 KiB
10Futási hiba0/21ms1212 KiB
11Futási hiba0/31ms1144 KiB
12Futási hiba0/31ms1080 KiB
13Futási hiba0/31ms1140 KiB
14Futási hiba0/31ms1144 KiB
15Futási hiba0/31ms1208 KiB
16Futási hiba0/41ms1144 KiB
17Futási hiba0/11ms1140 KiB
18Futási hiba0/11ms1144 KiB
19Futási hiba0/11ms1208 KiB
20Futási hiba0/11ms1148 KiB
21Futási hiba0/11ms1140 KiB
22Futási hiba0/11ms1140 KiB