Cod sursa(job #206072)
#include<fstream>
using namespace std;
int viz[1000],cost[10009];
int main(){
int G, W, i, E[1000], C[1000],j,co,imin,min,ok;
ifstream f("energii.in");
f>>G>>W;
for(i=0;i<G;i++)
f>>E[i]>>C[i];
f.close();
for(i=0;i<10009;i++)
cost[i]=10000099;
min=10000099;
for(i=0;i<10009;i++){
ok=0;
for(j=0;j<G;j++){
if(!viz[j]){
ok=1;
if(E[j]<=i){
co=cost[i-E[j]]+C[j];
if(co<cost[i]){
cost[i]=co;
imin=j;
}
}
}
}
if(cost[i]<min&&i>=W)
min=cost[i];
if(!ok){
if(min==10000099){
ofstream g("energii.out");
g<<"-1\n";
g.close();
}
else{
ofstream g("energii.out");
g<<min<<'\n';
g.close();
}
}
// if(min>cost[i]) min=cost[i];
}
ofstream g("energii.out");
g<<min<<'\n';
g.close();
return 0;
}