Pagini recente » Cod sursa (job #1145961) | Cod sursa (job #2495315) | Cod sursa (job #1618866) | Cod sursa (job #1140868) | Cod sursa (job #766832)
Cod sursa(job #766832)
#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, max = 0;
m[0] = 1;
for(i = 1 ; i <= n; i++)
{
for(j = max; j >= 0; j--)
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(v[i][0] + j > max)
max = v[i][0] + 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;
}