112542024-07-31 19:17:22antiBenzinkút üzemeltetés (55)cpp17Hibás válasz 0/554ms564 KiB
#include <iostream>

using namespace std;

int main()
{
    int n, k;
    cin >> n >> k;
    int t[n], h[n];
    for(int i=0; i<n; i++){
        cin >> t[i] >> h[i];
    }
    int m[n] = {0}, a=0;
    int M[n] = {0}, N[n] = {0};

    while(t[a]-t[0] < k){
        m[a] = h[a];
        a++;
    }

    int b, in, out, inb, outb;
    bool igen;

    while(a<n){
        b = a - 1;
        in = 0, out = 0;
        igen = false;
        while(t[a] - t[b] < k){                            //                5 20
            if(m[b] > in){                                 //10 10  0
                in = m[b];
                inb = b;                                 //20 40  1
            }                                              //30 10  2
            b--;                                           //40 20  3
        }                                                  //50 30  4
        while(t[a] - t[b] >= k && t[a] - t[b] < 2*k){
            if(m[b] > out){
                out = m[b];
                outb = b;
            }
            b--;
        }
        m[a] = max(in, out + h[a]);
        if(m[a] == in){
            M[a] = inb;
        }else if(m[a] == out + h[a]){
            M[a] = outb;
            igen = true;
        }
        a++;
    }

    cout << m[n-1] << endl;

    a--, b = 0;
    while(M[a] != 0){
        N[b] = M[a];
        a = M[a]; b++;
    }
    cout << b << " ";
    b--;

    for(int i=0; i<b; i++){
        cout << N[i] << " ";
    }
    if(igen){
        cout << n << " ";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/55
1Elfogadva0/03ms564 KiB
2Hibás válasz0/04ms436 KiB
3Futási hiba0/33ms356 KiB
4Hibás válasz0/33ms488 KiB
5Hibás válasz0/33ms504 KiB
6Hibás válasz0/32ms500 KiB
7Hibás válasz0/33ms412 KiB
8Hibás válasz0/33ms372 KiB
9Hibás válasz0/33ms412 KiB
10Hibás válasz0/33ms376 KiB
11Hibás válasz0/33ms356 KiB
12Hibás válasz0/33ms384 KiB
13Hibás válasz0/43ms504 KiB
14Hibás válasz0/43ms384 KiB
15Hibás válasz0/53ms504 KiB
16Hibás válasz0/63ms356 KiB
17Hibás válasz0/63ms500 KiB