2992021-08-20 21:10:46Babják PéterBefektetéscpp11Elfogadva 40/4035ms2628 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[2][N][2];
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 j=1;j<=n;j++)
	{
		int z;
		bool b=j&1;
		for(int i=1;i<=k;i++)
		{
			z=i-h[j-1].a;
			if(z>=0) dp[0][i][b]=max(dp[0][i][!b],dp[0][z][!b]+h[j-1].e);
			else dp[0][i][b]=dp[0][i][!b];
			
			z=z-h[j-1].t;
			if(z>=0) dp[1][i][b]=max(dp[1][i][!b],dp[0][z][!b]+h[j-1].e);
			else dp[1][i][b]=dp[1][i][!b];
		}
	}

	
	cout<<dp[1][k][n&1];
	return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base40/40
1Elfogadva0/02ms1744 KiB
2Elfogadva0/04ms1892 KiB
3Elfogadva2/21ms1872 KiB
4Elfogadva2/21ms1876 KiB
5Elfogadva1/12ms1884 KiB
6Elfogadva2/23ms1888 KiB
7Elfogadva2/22ms1896 KiB
8Elfogadva2/23ms1896 KiB
9Elfogadva2/22ms1900 KiB
10Elfogadva2/22ms1900 KiB
11Elfogadva3/39ms1956 KiB
12Elfogadva3/39ms1996 KiB
13Elfogadva3/39ms2016 KiB
14Elfogadva3/310ms2044 KiB
15Elfogadva3/38ms2088 KiB
16Elfogadva4/48ms2116 KiB
17Elfogadva1/130ms2324 KiB
18Elfogadva1/130ms2388 KiB
19Elfogadva1/130ms2444 KiB
20Elfogadva1/132ms2504 KiB
21Elfogadva1/135ms2568 KiB
22Elfogadva1/130ms2628 KiB