299 2021. 08. 20 21:10:46 Babják Péter Befektetés cpp11 Elfogadva 40/40 35ms 2628 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 Összpont Teszt Verdikt Idő Memória
base 40/40
1 Elfogadva 0/0 2ms 1744 KiB
2 Elfogadva 0/0 4ms 1892 KiB
3 Elfogadva 2/2 1ms 1872 KiB
4 Elfogadva 2/2 1ms 1876 KiB
5 Elfogadva 1/1 2ms 1884 KiB
6 Elfogadva 2/2 3ms 1888 KiB
7 Elfogadva 2/2 2ms 1896 KiB
8 Elfogadva 2/2 3ms 1896 KiB
9 Elfogadva 2/2 2ms 1900 KiB
10 Elfogadva 2/2 2ms 1900 KiB
11 Elfogadva 3/3 9ms 1956 KiB
12 Elfogadva 3/3 9ms 1996 KiB
13 Elfogadva 3/3 9ms 2016 KiB
14 Elfogadva 3/3 10ms 2044 KiB
15 Elfogadva 3/3 8ms 2088 KiB
16 Elfogadva 4/4 8ms 2116 KiB
17 Elfogadva 1/1 30ms 2324 KiB
18 Elfogadva 1/1 30ms 2388 KiB
19 Elfogadva 1/1 30ms 2444 KiB
20 Elfogadva 1/1 32ms 2504 KiB
21 Elfogadva 1/1 35ms 2568 KiB
22 Elfogadva 1/1 30ms 2628 KiB