Pagini recente » Cod sursa (job #770316) | Cod sursa (job #333373) | Cod sursa (job #2534781) | Cod sursa (job #2638447) | Cod sursa (job #4802)
Cod sursa(job #4802)
#include <cstdio>
#include <string>
int min(int a, int b) { if(a<b) return a; return b;}
int main()
{
int s1[1<<14], s2[1<<14];
int n, W, cost[1<<14], e[1<<14];
memset(s1, 0x3f3f3f3f, sizeof(s1));
memset(s2, 0x3f3f3f3f, sizeof(s2));
freopen("energii.in", "r", stdin);
scanf("%d\n",&n);
scanf("%d\n", &W);
int i, j, energie;
for(i=1;i<=n;i++) scanf("%d %d\n", e+i, cost+i);
for(i=1;i<=W;i++)
for(j=1;j<=n;j++)
{
energie=i-e[j];
if(energie<=0)
{
if(j==1) s1[i]=cost[j];
else s1[i]=min(s2[i], cost[j]);
}
else
{
if(j==1) s1[i]=0x3f3f3f3f;
else s1[i]=min(s2[i], cost[j]+s2[energie]);
}
}
// for(i=1;i<=W;i++) printf("%d %d\n", s1[i], s2[i]);
freopen("energii.out", "w", stdout);
printf("%d\n", s1[W]);
return 0;
}