Pagini recente » Cod sursa (job #3247346) | Cod sursa (job #3176550) | Cod sursa (job #3242514) | Cod sursa (job #1438700) | Cod sursa (job #951325)
Cod sursa(job #951325)
#include <fstream>
using namespace std;
fstream in("energii.in",ios::in),out("energii.out",ios::out);
const int G=1010;
const int INF = 2147000000,N=15001;
struct gen{
int e,c;
}r[G],maxx;
int g,w,cmin[N];
long long s,c;
int main()
{
in>>g>>w;
for( int i=1 ; i<=g ; i++ ){
in>>r[i].e>>r[i].c;
s+=r[i].e;
c+=r[i].c;
}
if(s<w){
out<<-1;
return 0;
}
if(s==w){
out<<c;
return 0;
}
cmin[0]=0;
for( int i=1 ; i<N ; i++)
cmin[i]=INF;
for( int i=1 ; i<=g ; i++ ){
for(int j=w ; j>=0 ; j--){
if(cmin[j]!=INF && cmin[j] + r[i].c < cmin[j+r[i].e])
cmin[r[i].e+j]=r[i].c ;
}
}
int minn=cmin[w];
for( int i=w+1 ; i<N ; i++)
if(cmin[i]<minn) minn=cmin[i];
out<<minn;
return 0;
}