165022025-05-04 23:13:00algoproJobstown-i milliomoscpp17Futási hiba 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;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Futási hiba3ms316 KiB
2Futási hiba3ms316 KiB
subtask20/25
3Futási hiba3ms508 KiB
4Futási hiba3ms316 KiB
5Hibás válasz8ms316 KiB
6Hibás válasz8ms316 KiB
7Hibás válasz8ms316 KiB
8Hibás válasz8ms472 KiB
9Hibás válasz8ms316 KiB
10Hibás válasz8ms468 KiB
11Hibás válasz8ms316 KiB
12Hibás válasz8ms468 KiB
13Hibás válasz8ms464 KiB
14Hibás válasz1ms508 KiB
subtask30/16
15Hibás válasz8ms316 KiB
16Hibás válasz8ms316 KiB
17Hibás válasz8ms316 KiB
18Hibás válasz1ms316 KiB
19Hibás válasz8ms500 KiB
20Hibás válasz8ms508 KiB
21Hibás válasz8ms508 KiB
subtask40/59
22Futási hiba3ms488 KiB
23Futási hiba3ms508 KiB
24Hibás válasz8ms468 KiB
25Hibás válasz8ms316 KiB
26Hibás válasz8ms316 KiB
27Hibás válasz8ms316 KiB
28Hibás válasz8ms476 KiB
29Hibás válasz8ms316 KiB
30Hibás válasz1ms316 KiB
31Hibás válasz8ms376 KiB
32Hibás válasz8ms532 KiB
33Hibás válasz8ms316 KiB