Pagini recente » Cod sursa (job #3181133) | Cod sursa (job #1343343) | Cod sursa (job #2309581) | Cod sursa (job #1101175) | Cod sursa (job #273953)
Cod sursa(job #273953)
#include<stdio.h>
#define INF -30001
#define DIM 2001
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]=INF;
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]!=INF&&a[i-1][j-eg[i]]!=INF)
a[i][j]=min(a[i-1][j],cg[i]+a[i-1][j-eg[i]]);
else if(a[i-1][j-eg[i]]!=-INF)
a[i][j]=cg[i]+a[i-1][j-eg[i]];}
else{
if(a[i-1][j]!=INF)
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;}