Cod sursa(job #3348900)

Utilizator RazvanVelcuVelcu Razvan RazvanVelcu Data 24 martie 2026 16:48:38
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.92 kb
#include <bits/stdc++.h>

using namespace std;

#define int long long

struct nigger
{
    int cost;
    int nr;
};
nigger v[100001];

bool cmp(nigger a,nigger b)
{
    if(a.cost==b.cost)
    {
        return a.nr<b.nr;
    }
    return a.cost<b.cost;
}
int dp[100001];

signed main()
{
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    int n,k;
    cin>>n>>k;
    for(int i=1;i<=n;i++)
    {
        cin>>v[i].cost>>v[i].nr;
    }
    sort(v+1,v+n+1,cmp);
    for(int i=1;i<=5005;i++)
    {
        dp[i]=INT_MAX;
    }
    for(int i=1;i<=n;i++)
    {
        for(int j=k-v[i].nr;j>=1;j--)
        {
            dp[v[i].nr+j]=min(dp[v[i].nr+j],dp[j]+v[i].cost);
        }
        dp[v[i].nr]=v[i].cost;
    }
    int minim=INT_MAX;
    int ras=0;
    for(int i=k;i<=5005;i++)
    {
        if(minim>dp[i])
        {
            minim=dp[i];
            ras=i;
            
        }
    }
    cout<<ras;

    return 0;
}