165072025-05-05 00:02:22algoproJobstown-i milliomoscpp17Hibás válasz 25/10079ms1004 KiB
// UUID: 9789475c-de38-43ec-a6f0-c63da216c5ec
#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 - 40000) / bw;
    }

    limit = limit - bw * db;

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

    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
5Elfogadva78ms628 KiB
6Elfogadva78ms820 KiB
7Elfogadva78ms820 KiB
8Elfogadva78ms676 KiB
9Elfogadva78ms820 KiB
10Elfogadva78ms820 KiB
11Elfogadva78ms820 KiB
12Elfogadva79ms824 KiB
13Elfogadva79ms1004 KiB
14Elfogadva2ms564 KiB
subtask30/16
15Hibás válasz64ms564 KiB
16Hibás válasz63ms748 KiB
17Hibás válasz64ms564 KiB
18Hibás válasz1ms756 KiB
19Hibás válasz63ms564 KiB
20Hibás válasz63ms564 KiB
21Hibás válasz63ms780 KiB
subtask40/59
22Elfogadva1ms316 KiB
23Elfogadva1ms316 KiB
24Hibás válasz63ms564 KiB
25Hibás válasz63ms564 KiB
26Hibás válasz63ms564 KiB
27Hibás válasz64ms564 KiB
28Hibás válasz63ms756 KiB
29Hibás válasz64ms564 KiB
30Hibás válasz1ms564 KiB
31Hibás válasz63ms564 KiB
32Hibás válasz63ms564 KiB
33Hibás válasz63ms756 KiB