Cod sursa(job #2377708)

Utilizator ClaudiuALLupau Claudiu ClaudiuAL Data 10 martie 2019 21:27:55
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.8 kb
#include <fstream>

using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
#define gmax 1001
#define wmax 5000
#define INF 9999999
int dp[wmax*3+5],w,n;
struct inf
{
    int cost;
    int energie;
} v[gmax];
void read()
{
    int i;
    cin>>n>>w;
    for(i=1;i<=n;i++)
    {
        cin>>v[i].energie>>v[i].cost;
    }
}
void solve()
{
    int i,j,sol=INF;
    for(i=1;i<=wmax*3;i++)
        dp[i]=INF;
    for(i=1;i<=n;i++)
    {
        for(j=w;j>=0;j--)
          if(dp[j]!=INF)
          {
              dp[j+v[i].energie]=min(dp[j+v[i].energie],(dp[j]+v[i].cost));
          }
    }
    for(i=w;i<=wmax*3;i++)
        sol=min(dp[i],sol);
    if(sol==INF) cout<<-1;
    else cout<<sol;
}
int main()
{
    read();
    solve();
    return 0;
}