Pagini recente » Cod sursa (job #467773) | Cod sursa (job #3181038) | Cod sursa (job #3180209) | Cod sursa (job #41991) | Cod sursa (job #2205807)
#include <iostream>
#include <fstream>
#define NMAX 20005
#define INF 0x3f3f3f
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,w,dp[NMAX];
int main()
{
for(int i = 1; i <= NMAX; i++)
dp[i]=INF;
fin>>n>>w;
while(n--)
{
int energia,cost;
fin>>energia>>cost;
for(int i = w - 1; i >= 0 ; i--)
{
dp[i+energia]=min(dp[i+energia], dp[i] +cost); /// ce aveam la pasul anterior plus costul current;
}
}
int minim=NMAX;
for(int i = w; i <= NMAX; i++)
if(dp[i] < minim)
minim=dp[i];
if(minim!=INF) fout<<minim;
else fout<<-1;
}