Pagini recente » Cod sursa (job #1358312) | Cod sursa (job #346992) | Cod sursa (job #2041445) | Cod sursa (job #1281955) | Cod sursa (job #2325508)
#include <bits/stdc++.h>
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int n,val;
int w[1005],v[1005];
int dp[10011005];
int main(){
int i,j,sum1=0,sum=0,answer=1000000000,ok=0,k=0;
fin>>n>>val;
for(i=1;i<=n;i++){
fin>>w[i]>>v[i];
sum1+=w[i];
if(w[i]<=val)
k=1;
}
if(k){
dp[0]=0;
for(i=1;i<=sum1;i++)
dp[i]=1000000000;
for(i=1;i<=n;i++){
sum+=w[i];
for(j=sum;j>=w[i];j--)
dp[j]=min(dp[j],v[i]+dp[j-w[i]]);
}
for(i=val;i<=sum;i++)
if(dp[i]<answer){
answer=dp[i];
ok=1;
}
if(ok)
fout<<answer;
else
fout<<-1;
}
else
fout<<-1;
return 0;
}