Pagini recente » Cod sursa (job #2276595) | Cod sursa (job #3218806) | Cod sursa (job #1724608) | Cod sursa (job #1356410) | Cod sursa (job #386120)
Cod sursa(job #386120)
#include<stdio.h>
int min (int a, int b)
{
if(a == 0 || a > b)
return b;
return a;
}
int v[6000], c[1000], p[1000], r[1000];
int main()
{
freopen("energii.in", "r", stdin);
freopen("energii.out", "w", stdout);
int i, j, g, w, s = 0, k = 0, z = 0;
scanf("%d%d", &g, &w);
for(i = 0; i < g; i++)
{
scanf("%d%d", &p[i], &c[i]);
s += p[i];
}
if(s < w)
printf("-1");
else
{ for(j = 0; j < g; j++)
for(i = w; i>= 0; i--)
{
if(v[i] != 0 || i == 0)
if(i + p[j] >= w)
{
r[k] = v[i] + c[j];
k++;
}
else
v[i+p[j]] = min(v[i + p[j]], v[i] + c[j]);
}
for(i = 0; i< k; i++)
z = min(z, r[i]);
printf("%d", z);
}
return 0;
}