165102025-05-05 00:07:21algoproJobstown-i milliomoscpp17Hibás válasz 25/10079ms824 KiB
// UUID: 11e99214-8a7e-4acf-8d0d-d7a93b02d126
#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);
    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
2Elfogadva1ms316 KiB
subtask225/25
3Elfogadva1ms316 KiB
4Elfogadva1ms316 KiB
5Elfogadva78ms820 KiB
6Elfogadva78ms820 KiB
7Elfogadva78ms820 KiB
8Elfogadva78ms644 KiB
9Elfogadva78ms824 KiB
10Elfogadva78ms820 KiB
11Elfogadva78ms824 KiB
12Elfogadva79ms684 KiB
13Elfogadva79ms820 KiB
14Elfogadva2ms820 KiB
subtask30/16
15Elfogadva72ms564 KiB
16Elfogadva71ms564 KiB
17Elfogadva74ms564 KiB
18Hibás válasz1ms564 KiB
19Elfogadva71ms728 KiB
20Elfogadva71ms564 KiB
21Elfogadva71ms564 KiB
subtask40/59
22Elfogadva1ms500 KiB
23Elfogadva1ms500 KiB
24Elfogadva71ms564 KiB
25Elfogadva71ms564 KiB
26Elfogadva71ms564 KiB
27Elfogadva72ms564 KiB
28Elfogadva71ms564 KiB
29Elfogadva72ms756 KiB
30Hibás válasz1ms564 KiB
31Hibás válasz71ms564 KiB
32Elfogadva71ms564 KiB
33Hibás válasz71ms756 KiB