Pagini recente » Cod sursa (job #1815461) | Cod sursa (job #2251246) | Cod sursa (job #1844830) | Cod sursa (job #166838) | Cod sursa (job #2080934)
#include <fstream>
#include <algorithm>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
const int nm=10000;
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;
int sum=0;
for(int i=1;i<=n;i++)
sum+=v[i].energy;
if(sum<necesar)
{
cout<<-1;
return 0;
}
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;
}
/**
**/