Pagini recente » Cod sursa (job #3313400) | Cod sursa (job #827408) | Cod sursa (job #1689287) | Cod sursa (job #3350605) | Cod sursa (job #3356227)
#include <fstream>
#include <vector>
using namespace std;
ifstream cin("energii.in");
ofstream cout("energii.out");
vector<int> cost(10000005, 15005);
int main()
{
int g, w, e, c, smax, mini=10000005;
cin>>g>>w;
cost[0]=0;
smax=0;
for(int i=1; i<=g; i++){
cin>>e>>c;
for(int j=smax; j>=0; j--)
if(cost[j]!=10000005 && j+e<=15005){
//cout<<" cost[j] initial: "<<cost[j];
if(cost[j]+c<cost[j+e]){
cost[j+e]=cost[j]+c;
if(cost[j+e]<mini && j+e>=w)
mini=cost[j+e];
}
//cout<<" cost[j] schimbat: "<<cost[j+e[i]]<<endl;
}
smax+=e;
}
/*
cout<<"smax: "<<smax<<endl;
for(int i=0; i<=smax; i++)
cout<<i<<" "<<cost[i]<<endl;
*/
if(mini!=10000005)
cout<<mini;
else
cout<<-1;
return 0;
}