165112025-05-05 00:11:08algoproJobstown-i milliomoscpp17Elfogadva 100/10079ms1016 KiB
// UUID: 86337478-0ee2-4775-a5d8-dadd3478d4ec
#include <bits/stdc++.h>
using namespace std;

void solve(){
    int n, limit;
    cin >> n >> limit;

    vector<pair<long long, long long>> jobs(n);

    long long bv = 0, bw = 1;

    for (int i = 0; i < n; i++) {
        cin >> jobs[i].first;
    }
    for (int i = 0; i < n; i++) {
        cin >> jobs[i].second;

        if (1.0 * jobs[i].second / jobs[i].first > 1.0 * bv / bw) {
            bv = jobs[i].second;
            bw = jobs[i].first;
        }
    }
        
    int db = 0;

    if (limit > 50000) {
        db = (limit - 46000) / bw;
    }

    limit -= bw * db;

    vector<long long> dp(limit + 1, 0);
    

    for (int i = 0; i <= limit; i++) {
        for (const auto& j : jobs) {
            if (j.first <= i) {
                dp[i] = max(dp[i], dp[i - j.first] + j.second);
            }

        }
    }

    cout << dp[limit] + db * bv;;
}

int main() {
    ios::sync_with_stdio(false);
    cin.tie(nullptr);


    solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms316 KiB
subtask225/25
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva78ms820 KiB
6Elfogadva79ms820 KiB
7Elfogadva78ms1012 KiB
8Elfogadva78ms820 KiB
9Elfogadva78ms1016 KiB
10Elfogadva78ms832 KiB
11Elfogadva78ms820 KiB
12Elfogadva79ms688 KiB
13Elfogadva79ms1008 KiB
14Elfogadva1ms564 KiB
subtask316/16
15Elfogadva72ms564 KiB
16Elfogadva71ms564 KiB
17Elfogadva72ms564 KiB
18Elfogadva1ms760 KiB
19Elfogadva71ms564 KiB
20Elfogadva71ms564 KiB
21Elfogadva71ms752 KiB
subtask459/59
22Elfogadva1ms316 KiB
23Elfogadva1ms316 KiB
24Elfogadva71ms576 KiB
25Elfogadva71ms748 KiB
26Elfogadva71ms568 KiB
27Elfogadva72ms772 KiB
28Elfogadva71ms760 KiB
29Elfogadva74ms760 KiB
30Elfogadva1ms564 KiB
31Elfogadva71ms564 KiB
32Elfogadva71ms564 KiB
33Elfogadva71ms756 KiB