168452025-05-13 21:49:17algoproJobstown-i milliomoscpp17Elfogadva 100/10017ms760 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;
    }
    
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask225/25
3Elfogadva1ms416 KiB
4Elfogadva1ms316 KiB
5Elfogadva17ms564 KiB
6Elfogadva17ms568 KiB
7Elfogadva17ms568 KiB
8Elfogadva17ms756 KiB
9Elfogadva17ms564 KiB
10Elfogadva17ms564 KiB
11Elfogadva17ms564 KiB
12Elfogadva16ms564 KiB
13Elfogadva16ms568 KiB
14Elfogadva1ms564 KiB
subtask316/16
15Elfogadva17ms564 KiB
16Elfogadva17ms756 KiB
17Elfogadva17ms744 KiB
18Elfogadva2ms748 KiB
19Elfogadva16ms564 KiB
20Elfogadva17ms564 KiB
21Elfogadva17ms756 KiB
subtask459/59
22Elfogadva1ms316 KiB
23Elfogadva1ms508 KiB
24Elfogadva16ms564 KiB
25Elfogadva17ms564 KiB
26Elfogadva17ms564 KiB
27Elfogadva17ms564 KiB
28Elfogadva17ms568 KiB
29Elfogadva16ms564 KiB
30Elfogadva1ms564 KiB
31Elfogadva17ms564 KiB
32Elfogadva17ms760 KiB
33Elfogadva17ms564 KiB