Pagini recente » Cod sursa (job #677467) | Cod sursa (job #1981138) | Cod sursa (job #1624166) | Cod sursa (job #2204842) | Cod sursa (job #273952)
Cod sursa(job #273952)
#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;}