Pagini recente » Cod sursa (job #1459974) | Cod sursa (job #1763577) | Cod sursa (job #1501618) | Cod sursa (job #1644815) | Cod sursa (job #766851)
Cod sursa(job #766851)
#include<stdio.h>
#define NMAX 1001
#define EMAX 10001
int v[ NMAX ][2], a[ EMAX ], n, x;
void read()
{
int i;
FILE *f = fopen("energii.in", "r");
fscanf(f, "%d %d", &n, &x);
for(i = 1; i <= n; i++)
fscanf(f, "%d %d", &v[i][0], &v[i][1]);
fclose(f);
}
void solve()
{
int i, j;
for(i = 1 ; i <= n; i++)
{
for(j = x; j >= 0; j--)
if(a[j] || !j)
{
if(j + v[i][0] <= x)
{
if(!a[ v[i][0] + j] || v[i][1] + a[j] < a[ v[i][0] + j ])
a[ v[i][0] + j ] = v[i][1] + a[j];
}
else if(!a[x] || v[i][0] + a[j] < a[x])
a[x] = v[i][0] + a[j];
}
}
if(!a[x])
a[x] = -1;
}
void write()
{
FILE *g = fopen("energii.out", "w");
fprintf(g, "%d\n", a[x]);
fclose(g);
}
int main()
{
read();
solve();
write();
return 0;
}