Pagini recente » Cod sursa (job #1972514) | Cod sursa (job #966883) | Cod sursa (job #1151718) | Cod sursa (job #209943) | Cod sursa (job #2080932)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
const int nm=20000;
int dp[nm+5],aux[nm+5];
struct fint
{
int energy,cost;
};
fint v[1005];
int n,necesar;
int main()
{
cin>>n>>necesar;
for(int i=1;i<=n;i++)
cin>>v[i].energy>>v[i].cost;
dp[0]=1;
for(int i=1;i<=nm;i++)
aux[i]=1e9;
for(int i=1;i<=n;i++)
{
for(int j=0;j+v[i].energy<=nm;j++)
if(dp[j])
aux[j+v[i].energy]=min(aux[j+v[i].energy],dp[j]+v[i].cost);
for(int j=1;j<=nm;j++)
dp[j]=aux[j];
}
int mi=1e9;
for(int i=necesar;i<=nm;i++)
mi=min(mi,dp[i]-1);
cout<<mi;
cin.close();
cout.close();
return 0;
}
/**
dp[i][j]=cost minim din primele i cu energie j
**/