Pagini recente » Cod sursa (job #1199079) | Cod sursa (job #1636703) | Cod sursa (job #470971) | Cod sursa (job #932357) | Cod sursa (job #1778053)
#include <fstream>
#define e first
#define p second
using namespace std;
short int G, W, i, j;
int P[10000001], sol, lim, s;
pair <short int, short int> v[1001];
ifstream fin("energii.in");
ofstream fout("energii.out");
int main(){
fin>>G>>W;
for(i=1;i<=G;i++){
fin>>v[i].e>>v[i].p;
}
for(i=1;i<=10000;i++)
P[i]=10000100;
P[0]=0;
sol=10000100;
lim=W;
for(i=1;i<=G;i++)
for(j=W;j>=0;j--)
if(P[j]!=10000100){
if(j+v[i].e>=W)
P[W]=min(P[W], P[j]+v[i].p);
else
P[j+v[i].e] = min(P[j]+v[i].p, P[j+v[i].e]);
/* if(j+v[i].e>=W) {
if(sol>P[j+v[i].e])
sol=P[j+v[i].e];
} */
}
if(P[W]==10000100)
fout<<"-1";
else
fout<<P[W];
return 0;
}