165022025-05-04 23:13:00algoproJobstown-i milliomoscpp17Runtime error 0/1008ms532 KiB
// UUID: 84a3bfb6-3598-4b9e-85c8-5210a67f1531
#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;

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

    limit = 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 * bw;
}

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


    solve();
    return 0;
}
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Runtime error3ms316 KiB
2Runtime error3ms316 KiB
subtask20/25
3Runtime error3ms508 KiB
4Runtime error3ms316 KiB
5Wrong answer8ms316 KiB
6Wrong answer8ms316 KiB
7Wrong answer8ms316 KiB
8Wrong answer8ms472 KiB
9Wrong answer8ms316 KiB
10Wrong answer8ms468 KiB
11Wrong answer8ms316 KiB
12Wrong answer8ms468 KiB
13Wrong answer8ms464 KiB
14Wrong answer1ms508 KiB
subtask30/16
15Wrong answer8ms316 KiB
16Wrong answer8ms316 KiB
17Wrong answer8ms316 KiB
18Wrong answer1ms316 KiB
19Wrong answer8ms500 KiB
20Wrong answer8ms508 KiB
21Wrong answer8ms508 KiB
subtask40/59
22Runtime error3ms488 KiB
23Runtime error3ms508 KiB
24Wrong answer8ms468 KiB
25Wrong answer8ms316 KiB
26Wrong answer8ms316 KiB
27Wrong answer8ms316 KiB
28Wrong answer8ms476 KiB
29Wrong answer8ms316 KiB
30Wrong answer1ms316 KiB
31Wrong answer8ms376 KiB
32Wrong answer8ms532 KiB
33Wrong answer8ms316 KiB