251 | 2021. 03. 06 16:39:22 | mraron | Befektetés | cpp14 | Elfogadva 40/40 | 34ms | 2680 KiB |
#include<bits/stdc++.h>
using namespace std;
using ll = long long ;
#define chkmx(x,y) (x)=max((x),(y))
const int MAXN=5001, MAXK=5001;
int n,k;
ll dp[2][MAXK];
struct Property {
ll price, value, tax;
bool operator<(const Property& other) const {
return tax<other.tax;
}
};
int main() {
ios_base::sync_with_stdio(false);
cin.tie(0);
cout.tie(0);
cin>>n>>k;
vector<Property> lst(n);
for(int i=0;i<n;++i) {
cin>>lst[i].price>>lst[i].value>>lst[i].tax;
}
sort(lst.begin(), lst.end());
ll ans=0;
for(int i=1;i<=n;++i) {
for(int j=0;j<=k;++j) {
dp[i&1][j]=dp[(i&1)^1][j];
}
for(int j=0;j+lst[i-1].price<=k;++j) {
chkmx(dp[i&1][j], dp[(i&1)^1][j+lst[i-1].price]+lst[i-1].value);
}
for(int j=lst[i-1].tax;j<=k;++j) {
chkmx(ans, dp[i&1][j]);
}
}
cout<<ans<<"\n";
return 0;
}
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
base | 40/40 | ||||||
1 | Elfogadva | 0/0 | 2ms | 1768 KiB | |||
2 | Elfogadva | 0/0 | 3ms | 1964 KiB | |||
3 | Elfogadva | 2/2 | 1ms | 1872 KiB | |||
4 | Elfogadva | 2/2 | 1ms | 1872 KiB | |||
5 | Elfogadva | 1/1 | 1ms | 1876 KiB | |||
6 | Elfogadva | 2/2 | 1ms | 1892 KiB | |||
7 | Elfogadva | 2/2 | 1ms | 1896 KiB | |||
8 | Elfogadva | 2/2 | 1ms | 1900 KiB | |||
9 | Elfogadva | 2/2 | 1ms | 1908 KiB | |||
10 | Elfogadva | 2/2 | 1ms | 1908 KiB | |||
11 | Elfogadva | 3/3 | 8ms | 2120 KiB | |||
12 | Elfogadva | 3/3 | 8ms | 2144 KiB | |||
13 | Elfogadva | 3/3 | 8ms | 2176 KiB | |||
14 | Elfogadva | 3/3 | 8ms | 2204 KiB | |||
15 | Elfogadva | 3/3 | 8ms | 2236 KiB | |||
16 | Elfogadva | 4/4 | 8ms | 2264 KiB | |||
17 | Elfogadva | 1/1 | 34ms | 2368 KiB | |||
18 | Elfogadva | 1/1 | 28ms | 2424 KiB | |||
19 | Elfogadva | 1/1 | 28ms | 2480 KiB | |||
20 | Elfogadva | 1/1 | 28ms | 2544 KiB | |||
21 | Elfogadva | 1/1 | 28ms | 2612 KiB | |||
22 | Elfogadva | 1/1 | 28ms | 2680 KiB |