90602024-02-13 14:17:37RRoliBenzinkút üzemeltetés (55)cpp17Futási hiba 6/554ms3916 KiB
#include <iostream>

using namespace std;

struct{
    int hely;
    int hasz;
} a[1000];
int n, k, L[1000], maxi, kov[1000];

int main()
{
    cin >> n >> k;
    for(int i = 1; i <= n; i++) {
       cin >> a[i].hely >> a[i].hasz;
       kov[i] = -1;
    }

    for(int i = n; i >= 1; i--) {
        L[i] = a[i].hasz;
        int ln = 0;
        for(int j = i+1; j <= n; j++) {
            if(a[j].hely - a[i].hely >= k && L[j] > ln) {
                ln = L[j];
                kov[i] = j;
            }
        }
        L[i] += ln;
        if(maxi < L[i])
            maxi = L[i];
    }

    cout << maxi << endl;
    int t = 1, jo[1000];
    for(int i = 1; i <= n; i++)
        if(L[i] == maxi) {
            jo[1] = i;
            while(kov[i] != -1) {
                t++;
                jo[i] = kov[i];
                i = kov[i];
            }
            break;
        }
    cout << t << ' ';
    for(int i = 1; i <= t; i++)
        cout << jo[i] << ' ';

    return 0;
}

RészfeladatÖsszpontTesztVerdiktIdőMemória
base6/55
1Elfogadva0/03ms1888 KiB
2Futási hiba0/04ms2228 KiB
3Hibás válasz0/33ms2236 KiB
4Hibás válasz0/33ms2416 KiB
5Elfogadva3/33ms2756 KiB
6Hibás válasz0/33ms3140 KiB
7Elfogadva3/33ms3256 KiB
8Hibás válasz0/32ms3228 KiB
9Hibás válasz0/33ms3240 KiB
10Hibás válasz0/33ms3332 KiB
11Hibás válasz0/33ms3708 KiB
12Hibás válasz0/33ms3492 KiB
13Hibás válasz0/43ms3500 KiB
14Hibás válasz0/43ms3576 KiB
15Hibás válasz0/54ms3732 KiB
16Hibás válasz0/64ms3812 KiB
17Hibás válasz0/64ms3916 KiB