Pagini recente » Cod sursa (job #887244) | Cod sursa (job #853697) | Cod sursa (job #2707383) | Cod sursa (job #500268) | Cod sursa (job #462580)
Cod sursa(job #462580)
#include <stdio.h>
#define Gmax 1001
#define Wmax 5001
int G,W,min=-1;
int a[Gmax][Wmax];
struct generator
{int e,c;} v[Gmax];
int Min(int a,int b)
{
return (a>b) ? a : b;
}
void citire()
{
int i;
freopen("energii.in","r",stdin);
scanf("%d%d",&G,&W);
for (i=0;i<G;i++)
scanf("%d%d",&v[i].e,&v[i].c);
fclose(stdin);
}
int pd(int x,int s,int c)
{
if (s<=0)
return c;
if (x>=0 && !a[x][s])
{
int ax=pd(x-1,s-v[x].e,c+v[x].c);
int bx=pd(x-1,s,c);
ax= (ax==-1) ? bx : ax;
bx= (bx==-1) ? ax : bx;
a[x][s]= Min(ax,bx);
return a[x][s];
}
else if (x>=0)
return a[x][s];
return -1;
}
void scriere()
{
freopen("energii.out","w",stdout);
printf("%d\n",a[G-1][W]);
fclose(stdout);
}
int main()
{
citire();
pd(G-1,W,0);
scriere();
return 0;
}