Pagini recente » Cod sursa (job #2527863) | Cod sursa (job #1683292) | Cod sursa (job #2229517) | Cod sursa (job #2467071) | Cod sursa (job #2394190)
#include <fstream>
#define e first
#define c second
using namespace std;
ifstream fin("energii.in");
ofstream fout("energii.out");
int i,j,W,G,total,maxi,sol,sc,D[10000001];
pair<int,int> v[1001];
int main(){
fin>>G>>W;
for(i=1;i<=G;i++){
fin>>v[i].e>>v[i].c;
total+=v[i].e;
}
maxi=0;
for(i=1;i<=total;i++)D[i]=-1;
for(i=1;i<=G;i++)
for(j=maxi;j>=0;j--){
sc=j+v[i].e;
if(D[j]!=-1){
maxi=max(maxi,sc);
if(D[sc]==-1)D[sc]=v[i].c;
else D[sc]=min(D[sc],D[j]+v[i].c);
}
}
for(i=W;i<=total;i++)
if(D[i]!=-1){
fout<<D[i];
return 0;
}
fout<<-1;
return 0;
}