165032025-05-04 23:18:49algoproJobstown-i milliomoscpp17Futási hiba 0/1007ms512 KiB
// UUID: 90481218-27fe-4e38-a199-03d713b39218
#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 - 4000) / 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Futási hiba3ms316 KiB
2Futási hiba3ms316 KiB
subtask20/25
3Futási hiba3ms316 KiB
4Futási hiba3ms316 KiB
5Hibás válasz7ms512 KiB
6Hibás válasz7ms316 KiB
7Hibás válasz7ms460 KiB
8Hibás válasz7ms316 KiB
9Hibás válasz7ms316 KiB
10Hibás válasz7ms464 KiB
11Hibás válasz7ms468 KiB
12Hibás válasz7ms460 KiB
13Hibás válasz7ms316 KiB
14Hibás válasz1ms316 KiB
subtask30/16
15Hibás válasz7ms316 KiB
16Hibás válasz7ms508 KiB
17Hibás válasz7ms320 KiB
18Hibás válasz1ms508 KiB
19Hibás válasz7ms316 KiB
20Hibás válasz7ms316 KiB
21Hibás válasz7ms316 KiB
subtask40/59
22Futási hiba3ms316 KiB
23Futási hiba3ms316 KiB
24Hibás válasz7ms500 KiB
25Hibás válasz7ms316 KiB
26Hibás válasz7ms460 KiB
27Hibás válasz7ms316 KiB
28Hibás válasz7ms316 KiB
29Hibás válasz7ms316 KiB
30Hibás válasz1ms316 KiB
31Hibás válasz7ms316 KiB
32Hibás válasz7ms468 KiB
33Hibás válasz7ms316 KiB