Cod sursa(job #2613386)

Utilizator Simon2712Simon Slanina Simon2712 Data 9 mai 2020 16:46:25
Problema Energii Scor 0
Compilator cpp-64 Status done
Runda Arhiva de probleme Marime 0.79 kb
#include <fstream>

using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
int dp[1001][10001];
struct ura{
  short int e,c;
};
ura v[1001];
int main()
{
    int n,e,rez=0,i,j;
    cin>>n>>e;
    for(i=1;i<=n;i++)
    {
      cin>>v[i].e>>v[i].c;
    }
    for(i=1;i<=n;i++)
    for(j=1;j<=10000;j++)
    {
      if(j>=v[i].e){
        if(dp[i-1][j]){
          dp[i][j]=dp[i-1][j];
          if(dp[i][j-v[i].e]+v[i].c)
            dp[i][j]=min(dp[i][j-v[i].e]+v[i].c,dp[i][j]);
        }
        else
          dp[i][j]=dp[i][j-v[i].e]+v[i].c;
      }
      if(j>=e){
        if(rez==0)
          rez=dp[i][j];
        else
          rez=min(rez,dp[i][j]);
      }
    }
    if(rez==0)
      cout<<-1;
    else
      cout<<rez;
    return 0;
}