165092025-05-05 00:06:58algoproJobstown-i milliomoscpp17Hibás válasz 0/1007ms584 KiB
// UUID: 5837c990-812a-4b91-8641-9e36a8fe53d2
#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 > 5000) {
        db = (limit - 4000) / bw;
    }

    limit -= bw * db;

    vector<long long> dp(limit + 1, 0);
    dp[0] = db * bv;

    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];
}

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


    solve();
    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva1ms316 KiB
2Elfogadva1ms508 KiB
subtask20/25
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva7ms316 KiB
6Elfogadva7ms464 KiB
7Elfogadva7ms576 KiB
8Hibás válasz7ms316 KiB
9Hibás válasz7ms316 KiB
10Elfogadva7ms316 KiB
11Elfogadva7ms460 KiB
12Elfogadva7ms508 KiB
13Elfogadva7ms316 KiB
14Hibás válasz1ms556 KiB
subtask30/16
15Elfogadva7ms464 KiB
16Elfogadva7ms396 KiB
17Elfogadva7ms316 KiB
18Hibás válasz1ms316 KiB
19Elfogadva7ms464 KiB
20Elfogadva7ms316 KiB
21Elfogadva7ms584 KiB
subtask40/59
22Elfogadva1ms552 KiB
23Elfogadva1ms352 KiB
24Elfogadva7ms508 KiB
25Elfogadva7ms316 KiB
26Elfogadva7ms316 KiB
27Elfogadva7ms316 KiB
28Elfogadva7ms460 KiB
29Elfogadva7ms460 KiB
30Hibás válasz1ms316 KiB
31Hibás válasz7ms316 KiB
32Elfogadva7ms316 KiB
33Hibás válasz7ms316 KiB