Pagini recente » Cod sursa (job #2410528) | Cod sursa (job #611416) | Cod sursa (job #1525371) | Cod sursa (job #176693) | Cod sursa (job #2443647)
#include <fstream>
#define maxn 1001
#define maxe 5001
#define inf 10000
using namespace std;
ifstream f("energii.in");
ofstream g("energii.out");
int mat[maxn][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++)
// for(j=0;j<=energy;j++)
// mat[i][j]=inf;
for(i=1;i<=n;i++){
f>>power[i]>>cost[i];
s+=power[i];
}
if(s<energy){
g<<-1<<"\n";
return 0;
}
for(i=1;i<=n;i++)
for(j=0;j<=s;j++){
//mat[i][j]=mat[i-1][j];
if(mat[i][j]!=0 && j>=power[i])
mat[i][j]=min(mat[i][j],mat[i-1][j-power[i]]+cost[i]);
else if(j>=power[i])
mat[i][j]=mat[i-1][j-power[i]]+cost[i];
}
for(i=energy;i<=s;i++)
sol=min(sol,mat[n][i]);
g<<sol<<"\n";
}