Cod sursa(job #3348908)

Utilizator CalinPaun29Paun Calin CalinPaun29 Data 24 martie 2026 17:04:32
Problema Energii Scor 95
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 1.06 kb
#include <bits/stdc++.h>
#define int long long
using namespace std;

const int nm=15005;

int dp[nm];
int dp2[nm];

struct Cows
{
    int x, y;
}v[1005];

signed main()
{
    ifstream cin("energii.in");
    ofstream cout("energii.out");
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);
    cout.tie(nullptr);
    int n, w, minn=1e9;
    cin>>n>>w;
    for(int i=1; i<=n; i++)
    {
        cin>>v[i].x>>v[i].y;
    }
    for(int i=0; i<nm; i++)
        dp[i]=1e9;
    dp[0]=0;
    for(int i=1; i<=n; i++)
    {
        for(int j=0; j<nm; j++)
            dp2[j]=1e9;

        for(int j=0; j<=w; j++)
        {
            if(dp[j]!=1e9)
            {
                if(dp[j+v[i].x]>dp[j]+v[i].y)
                    dp2[j+v[i].x]=min(dp2[j+v[i].x], dp[j]+v[i].y);

                if(j+v[i].x>=w)
                    minn=min(minn, dp2[j+v[i].x]);
            }
        }
        for(int j=0; j<nm; j++)
        {
            if(dp2[j]!=1e9)
                dp[j]=dp2[j];
        }
    }
    cout<<minn;
    return 0;
}