Pagini recente » Cod sursa (job #106976) | Cod sursa (job #1260238) | Cod sursa (job #2076840) | Cod sursa (job #923518) | Cod sursa (job #766840)
Cod sursa(job #766840)
#include<stdio.h>
#define NMAX 1001
#define EMAX 10001
int v[ NMAX ][2], a[ EMAX ], m[ 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;
m[0] = 1;
for(i = 1 ; i <= n; i++)
{
for(j = x; j >= 0; j--)
if(v[i][0] + j <= x)
if( (!a[ v[i][0] + j ] && m[j] ) || ( (v[i][1] + a[j] < a[ v[i][0] + j]) && m[j]) )
{
a[ v[i][0] + j ] = v[i][1] + a[j];
m[ v[i][0] + j ] = 1;
}
}
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;
}