168432025-05-13 21:43:47algoproJobstown-i milliomoscpp17Hibás válasz 25/10050ms1012 KiB
// UUID: 354e51ba-5de2-479c-a1d9-5d9781aa6e14
#include <bits/stdc++.h>
using namespace std;



int main() {
    #define int long long
    int DP_LEN = 50000;
    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]);
        }
        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 << "\n";
    }
    else 
    {
        cout << max_n + ((m-DP_LEN) / max_avg.second) * max_avg.first;
    }
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask225/25
3Elfogadva1ms316 KiB
4Elfogadva1ms524 KiB
5Elfogadva50ms1012 KiB
6Elfogadva50ms820 KiB
7Elfogadva50ms820 KiB
8Elfogadva50ms820 KiB
9Elfogadva50ms820 KiB
10Elfogadva50ms836 KiB
11Elfogadva50ms644 KiB
12Elfogadva50ms824 KiB
13Elfogadva50ms820 KiB
14Elfogadva2ms1004 KiB
subtask30/16
15Hibás válasz50ms820 KiB
16Hibás válasz50ms820 KiB
17Hibás válasz50ms820 KiB
18Hibás válasz2ms820 KiB
19Elfogadva50ms820 KiB
20Elfogadva50ms824 KiB
21Elfogadva50ms1012 KiB
subtask40/59
22Elfogadva1ms508 KiB
23Elfogadva1ms508 KiB
24Hibás válasz50ms820 KiB
25Hibás válasz50ms820 KiB
26Hibás válasz50ms820 KiB
27Hibás válasz50ms756 KiB
28Hibás válasz50ms832 KiB
29Hibás válasz50ms820 KiB
30Hibás válasz2ms564 KiB
31Hibás válasz50ms820 KiB
32Hibás válasz50ms820 KiB
33Hibás válasz50ms820 KiB