Pagini recente » Cod sursa (job #514204) | Cod sursa (job #2708512) | Cod sursa (job #391881) | Cod sursa (job #2729701) | Cod sursa (job #2443659)
#include <fstream>
#define maxn 1001
#define maxe 5001
#define inf 10000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int dp[maxe], cost[maxn], power[maxn];
int main(){
int n, energy, i, j, s=0, sol=inf;
f>>n>>energy;
// for(i=0;i<=n;i++)
//dp[i]=inf;
for(i=1;i<=n;i++){
f>>power[i]>>cost[i];
s+=cost[i];
}
if(s<energy){
g<<-1<<"\n";
return 0;
}
for(i=1;i<=n;i++)
for(j=s;j>=cost[i];j--){
dp[j]=max(dp[j],dp[j-cost[i]]+power[i]);
}
for(i=1;i<=s;i++)
if(dp[i]>=energy){
sol=i;
break;
}
g<<sol<<"\n";
}