140022025-01-09 17:00:24Vkrisztian01Benzinkút üzemeltetés (55)cpp17Elfogadva 55/5528ms24020 KiB
#include <iostream>
#include<bits/stdc++.h>
typedef long long ll ;

using namespace std;
const ll Nmax = 1e6 ;


int main()
{
    int n , k ;
    cin >> n >> k ;

    vector<pair<ll ,ll> > a(Nmax + 1, {0 , 0}) ;
    vector<ll> dp(Nmax + 1) ;
    vector<bool> used(Nmax + 1 , false) ;
    dp[0] = 0 ;
    for(int i = 1 ; i <= n ; i++)
    {
        ll u , v ;
        cin >> u >> v ;

        if(v > a[u].first)
            a[u] = {v , i} ;
    }

    for(int i = 1 ; i <= Nmax ; i++)
    {
        dp[i] = dp[i - 1] ;

        if(a[i].first != 0 && dp[i] < dp[max(0 , i - k) ] + a[i].first)
        {
            dp[i] = dp[max(0 , i - k) ] + a[i].first ;
            used[i] = true ;
        }
    }

    cout << dp[Nmax] << "\n" ;

    vector<int> ans ;
    for(int i = Nmax ; i >= 0 ; i--)
    {
        if(used[i])
        {
            ans.push_back(a[i].second) ;
            i -= k ;
            ++i ;
        }
    }

    sort(ans.begin() , ans.end()) ;

    cout << ans.size() << " " ;
    for(int x : ans)
        cout << x << " " ;

    return 0;
}
RészfeladatÖsszpontTesztVerdiktIdőMemória
base55/55
1Elfogadva0/027ms23860 KiB
2Elfogadva0/028ms24020 KiB
3Elfogadva3/321ms23860 KiB
4Elfogadva3/321ms23860 KiB
5Elfogadva3/321ms23876 KiB
6Elfogadva3/327ms23860 KiB
7Elfogadva3/321ms23860 KiB
8Elfogadva3/327ms23880 KiB
9Elfogadva3/321ms23776 KiB
10Elfogadva3/321ms23784 KiB
11Elfogadva3/327ms23980 KiB
12Elfogadva3/327ms23936 KiB
13Elfogadva4/427ms23856 KiB
14Elfogadva4/427ms23856 KiB
15Elfogadva5/523ms24004 KiB
16Elfogadva6/623ms24016 KiB
17Elfogadva6/623ms23868 KiB