Pagini recente » Cod sursa (job #1882967) | Cod sursa (job #476827) | Cod sursa (job #1801766) | Cod sursa (job #991760) | Cod sursa (job #274057)
Cod sursa(job #274057)
#include<algorithm>
#define DIM 1001
using namespace std;
int g,w,eg[DIM],cg[DIM],a[DIM][10*DIM];
int min(int x,int y){
if(x<y)
return x;
return y;}
void solve(){
int i,j;
scanf("%d%d",&g,&w);
for(i=1; i<=g; ++i)
scanf("%d%d",&eg[i],&cg[i]);
for(i=1; i<=g; ++i)
for(j=1; j<=w; ++j)
a[i][j]=-1;
for(i=1; i<=eg[1]; a[1][i++]=cg[1]);
for(i=2; i<=g; a[i][1]=min(a[i-1][1],cg[i]),++i);
for(i=2; i<=g; ++i)
for(j=2; j<=w; ++j)
if(eg[i]<=j){
if(a[i-1][j]!=-1&&a[i-1][j-eg[i]]!=-1)
a[i][j]=min(a[i-1][j],cg[i]+a[i-1][j-eg[i]]);
else if(a[i-1][j-eg[i]]!=-1)
a[i][j]=cg[i]+a[i-1][j-eg[i]];}
else{
if(a[i-1][j]!=-1)
a[i][j]=min(a[i-1][j],cg[i]);
else
a[i][j]=cg[i];}
printf("%d",a[g][w]);}
int main(){
freopen("energii.in","r",stdin);
freopen("energii.out","w",stdout);
solve();
return 0;}