| 16845 | 2025-05-13 21:49:17 | algopro | Jobstown-i milliomos | cpp17 | Accepted 100/100 | 17ms | 760 KiB |
// UUID: 74b2c076-3fa1-4f2c-a25c-7a32e46deba1
#include <bits/stdc++.h>
using namespace std;
int main() {
#define int long long
int DP_LEN = 25000;
ios::sync_with_stdio(false);
cin.tie(0);
int n,m;cin >> n >> m;
vector<int> v(n);
vector<int> t(n);
for(int i = 0; i < n; i++)
{
cin >> t[i];
}
for(int i = 0; i < n; i++)
{
cin >> v[i];
}
int l = min(m, DP_LEN);
vector<int> dp(l+1);
dp[0] = 0;
for(int i = 0; i < l; i++)
{
int max_num = 0;
for(int j = 0; j < n; j++)
{
if(i + 1 - t[j] >= 0) max_num = max(max_num, dp[i + 1 -t[j]] + v[j]);
// if(i + 1 - t[j] >= 0) max_num = max(dp[i], max(max_num, dp[i + 1 -t[j]] + v[j]));
}
dp[i+1] = max_num;
}
int max_n = 0;
for(int i = 0; i < l+1; i++)
{
max_n = max(dp[i], max_n);
}
pair<int, int> max_avg = {v[0], t[0]};
for(int i = 1; i < n; i++)
{
if(v[i] * max_avg.second > t[i] * max_avg.first)
{
max_avg.first = v[i];
max_avg.second = t[i];
}
}
if(m <= DP_LEN)
{
cout << max_n;
}
else
{
int max_num = 0;
for(int i = 0; i <= DP_LEN; i++)
{
max_num = max(max_num, dp[i] + (m - i) / max_avg.second * max_avg.first);
}
cout << max_num;
}
}
| Subtask | Sum | Test | Verdict | Time | Memory | ||
|---|---|---|---|---|---|---|---|
| subtask1 | 0/0 | ||||||
| 1 | Accepted | 1ms | 316 KiB | ||||
| 2 | Accepted | 1ms | 316 KiB | ||||
| subtask2 | 25/25 | ||||||
| 3 | Accepted | 1ms | 416 KiB | ||||
| 4 | Accepted | 1ms | 316 KiB | ||||
| 5 | Accepted | 17ms | 564 KiB | ||||
| 6 | Accepted | 17ms | 568 KiB | ||||
| 7 | Accepted | 17ms | 568 KiB | ||||
| 8 | Accepted | 17ms | 756 KiB | ||||
| 9 | Accepted | 17ms | 564 KiB | ||||
| 10 | Accepted | 17ms | 564 KiB | ||||
| 11 | Accepted | 17ms | 564 KiB | ||||
| 12 | Accepted | 16ms | 564 KiB | ||||
| 13 | Accepted | 16ms | 568 KiB | ||||
| 14 | Accepted | 1ms | 564 KiB | ||||
| subtask3 | 16/16 | ||||||
| 15 | Accepted | 17ms | 564 KiB | ||||
| 16 | Accepted | 17ms | 756 KiB | ||||
| 17 | Accepted | 17ms | 744 KiB | ||||
| 18 | Accepted | 2ms | 748 KiB | ||||
| 19 | Accepted | 16ms | 564 KiB | ||||
| 20 | Accepted | 17ms | 564 KiB | ||||
| 21 | Accepted | 17ms | 756 KiB | ||||
| subtask4 | 59/59 | ||||||
| 22 | Accepted | 1ms | 316 KiB | ||||
| 23 | Accepted | 1ms | 508 KiB | ||||
| 24 | Accepted | 16ms | 564 KiB | ||||
| 25 | Accepted | 17ms | 564 KiB | ||||
| 26 | Accepted | 17ms | 564 KiB | ||||
| 27 | Accepted | 17ms | 564 KiB | ||||
| 28 | Accepted | 17ms | 568 KiB | ||||
| 29 | Accepted | 16ms | 564 KiB | ||||
| 30 | Accepted | 1ms | 564 KiB | ||||
| 31 | Accepted | 17ms | 564 KiB | ||||
| 32 | Accepted | 17ms | 760 KiB | ||||
| 33 | Accepted | 17ms | 564 KiB | ||||