Pagini recente » Cod sursa (job #594457) | Cod sursa (job #2888570) | Cod sursa (job #3261957) | Cod sursa (job #410234) | Cod sursa (job #3264341)
#include <fstream>
int d[3][10002], energie[1002], cost[1002], costmin=5011;
using namespace std;
int main(){
ifstream fin("energii.in");
ofstream fout("energii.out");
int g, E;
fin>>g>>E;
for(int i=1;i<=g;i++)
fin>>energie[i]>>cost[i];
for(int i=0; i<=2; i++)
for(int e=1; e<=5001; e++)
d[i][e]=5010;
for(int i=1; i<=g; i++){
for(int e=1; e<=5001; e++){
if(e>=energie[i])
d[i%2][e]=min(d[1-i%2][e-energie[i]]+cost[i], d[1-i%2][e]);
else
d[i%2][e]=d[1-i%2][e];
}
}
for(int i=0; i<=1;i++){
for(int e=E; e<=5001; e++){
if(d[i][e]<costmin)
costmin=d[i][e];
}
}
if(costmin==5010)
fout<<"-1";
else fout<<costmin;
return 0;
}