168442025-05-13 21:44:10algoproJobstown-i milliomoscpp17Hibás válasz 25/100492ms4332 KiB
// UUID: 5b4e6c9e-fe05-42cc-8111-df41e47a98f2
#include <bits/stdc++.h>
using namespace std;



int main() {
    #define int long long
    int DP_LEN = 500000;
    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
1Elfogadva1ms508 KiB
2Elfogadva1ms316 KiB
subtask225/25
3Elfogadva1ms316 KiB
4Elfogadva1ms420 KiB
5Elfogadva50ms820 KiB
6Elfogadva50ms1004 KiB
7Elfogadva50ms820 KiB
8Elfogadva50ms824 KiB
9Elfogadva50ms824 KiB
10Elfogadva50ms1012 KiB
11Elfogadva50ms820 KiB
12Elfogadva50ms820 KiB
13Elfogadva50ms1004 KiB
14Elfogadva2ms820 KiB
subtask30/16
15Hibás válasz490ms4332 KiB
16Hibás válasz490ms4148 KiB
17Hibás válasz490ms4148 KiB
18Hibás válasz8ms4148 KiB
19Elfogadva490ms4148 KiB
20Elfogadva490ms4152 KiB
21Elfogadva490ms4148 KiB
subtask40/59
22Elfogadva1ms500 KiB
23Elfogadva1ms500 KiB
24Hibás válasz492ms4148 KiB
25Hibás válasz492ms4332 KiB
26Hibás válasz490ms4148 KiB
27Hibás válasz490ms4148 KiB
28Hibás válasz490ms4148 KiB
29Hibás válasz490ms4148 KiB
30Hibás válasz8ms4148 KiB
31Hibás válasz490ms4152 KiB
32Hibás válasz490ms4148 KiB
33Hibás válasz490ms4148 KiB