86052024-01-23 10:10:22GhostLeggyorsabb pénzkeresés (50)cpp17Hibás válasz 10/50300ms6392 KiB
#include <iostream>
#include <vector>
#include <algorithm>
#include <limits.h>

using namespace std;

int main()
{
    int n, p, i, temp;
    cin >> n >> p;

    vector<pair<int,int>> pay(n);
    vector<int> pay2(n);
    for (i = 0; i < n; i++) {
        cin >> temp;
        pay[i].first = temp;
        pay[i].second = i;
        pay2[i] = temp;
    }

    sort(pay.begin(), pay.end());
    
    i = 0;
    int minday = INT_MAX;
    while (i < n) {
        int node = pay[i].second, value = pay[i].first, days = 1;
        bool canR = false, canL = false;

        if (value >= p) {
            cout << days;
            return 0;
        }
        if (node < n - 1) {
            canR = true;
        }
        if (node > 0) {
            canL = true;
        }
        int r = 1, l = 1;
        while (value < p && (canL || canR)) {
            int R = -1, L = -1;
            if (canR) {
                R = pay2[node + r];
            }
            if (canL) {
                L = pay2[node - l];
            }

            if (R >= L && canR) {
                value += R;
                r++;
                days++;
                if ((node + r) >= n) {
                    canR = false;
                }
            }
            else if (canL) {
                value += L;
                l++;
                days++;
                if ((node - l) <= 0) {
                    canL = false;
                }
            }
        }
        if (days < minday) {
            minday = days;
        }
        i++;
    }
    cout << minday;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base10/50
1Hibás válasz0/03ms1688 KiB
2Időlimit túllépés0/0300ms2304 KiB
3Elfogadva2/23ms2060 KiB
4Elfogadva2/23ms2272 KiB
5Elfogadva2/23ms2356 KiB
6Hibás válasz0/217ms2740 KiB
7Hibás válasz0/254ms2828 KiB
8Hibás válasz0/275ms3228 KiB
9Elfogadva2/216ms3016 KiB
10Hibás válasz0/264ms2780 KiB
11Elfogadva2/248ms5056 KiB
12Időlimit túllépés0/2270ms3368 KiB
13Időlimit túllépés0/2248ms3392 KiB
14Hibás válasz0/2185ms5516 KiB
15Időlimit túllépés0/2273ms3760 KiB
16Hibás válasz0/2175ms5528 KiB
17Hibás válasz0/2157ms5640 KiB
18Időlimit túllépés0/2239ms4040 KiB
19Időlimit túllépés0/2266ms4124 KiB
20Időlimit túllépés0/2282ms4204 KiB
21Időlimit túllépés0/2268ms6028 KiB
22Időlimit túllépés0/2273ms4300 KiB
23Időlimit túllépés0/2252ms4388 KiB
24Időlimit túllépés0/2264ms4704 KiB
25Időlimit túllépés0/2264ms4436 KiB
26Időlimit túllépés0/2256ms6392 KiB
27Időlimit túllépés0/2250ms6332 KiB