Cod sursa(job #2480139)

Utilizator TeddyDinutaDinuta Eduard Stefan TeddyDinuta Data 24 octombrie 2019 22:55:18
Problema Energii Scor 100
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.73 kb
#include <bits/stdc++.h>
#define ll long long
using namespace std;
ifstream f ("energii.in"); ofstream g ("energii.out");
int cost[1005],energie[1005];
int dp[10000005];
int main()
{   ios_base::sync_with_stdio(0);
    cin.tie(0);
    int n,w,maxw=0;
    f>>n>>w;
    for(int i=1;i<=n;maxw+=energie[i],i++) f>>energie[i]>>cost[i];
    if(maxw<w)
    {   g<<-1;
        return 0;
    }
    maxw=10000+w;
    for(int i=1;i<=maxw;i++) dp[i]=(1<<30);
    for(int i=1;i<=n;i++)
    {   for(int j=maxw-energie[i];j>=0;j--)
            if(dp[j]!=(1<<30))
            dp[j+energie[i]]=min(dp[j+energie[i]],dp[j]+cost[i]);
    }
    int ans=(1<<30);
    for(int i=w;i<=maxw;i++) ans=min(ans,dp[i]);
    g<<ans;
    return 0;
}