140852025-01-09 18:30:04piritymarciBenzinkút üzemeltetés (55)cpp17Hibás válasz 0/552ms508 KiB
#include <bits/stdc++.h>

using namespace std;

int main()
{
    int n, k;
    cin >> n >> k;
    vector<vector<int>> a(n, vector<int>(5, 0));
    for(int i = 0;i < n; i++){
        cin >> a[i][0] >> a[i][1];
    }
    int p = a[n-1][1];
    a[n-1][2]=1;
    a[n-1][3]=1;
    a[n-1][4] = a[n-1][1];
    for (int i = n-2; i>=0; i--){
        int temp = a[i][1];
        int j = i;
        while (j < n && a[j][0]-k<a[i][0]){
            if (a[j][2]==1){
                temp-= a[j][4];
                a[j][3]=0;
            }
            j++;
        }
        a[i][4] = temp;
        if (temp>0){
            int j =0;
            while (j < n && a[j][0]-k<a[i][0]){
                a[j][2]=a[j][3];
                j++;
            }
            p+=temp;
            a[i][2]=1;
            a[i][3]=1;
        }
    }
    cout << p << '\n';
    int s;
    vector<int> solve;
    for (int i = 0; i<n; i++){
        if (a[i][2]==1){
            s++;
            solve.push_back(i+1);
        }
    }
    cout << s << " ";
    for(int i = 0; i<solve.size(); i++){
        cout << solve[i] << " ";
    }

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base0/55
1Hibás válasz0/01ms316 KiB
2Hibás válasz0/02ms316 KiB
3Hibás válasz0/31ms316 KiB
4Hibás válasz0/31ms508 KiB
5Hibás válasz0/31ms500 KiB
6Hibás válasz0/31ms316 KiB
7Hibás válasz0/31ms316 KiB
8Hibás válasz0/31ms316 KiB
9Hibás válasz0/31ms316 KiB
10Hibás válasz0/31ms316 KiB
11Hibás válasz0/31ms320 KiB
12Hibás válasz0/31ms316 KiB
13Hibás válasz0/41ms316 KiB
14Hibás válasz0/41ms392 KiB
15Hibás válasz0/52ms316 KiB
16Hibás válasz0/62ms508 KiB
17Hibás válasz0/62ms316 KiB