Pagini recente » Cod sursa (job #2964389) | Cod sursa (job #1699957) | Cod sursa (job #791459) | Cod sursa (job #2800062) | Cod sursa (job #2615983)
#include <stdio.h>
#include <stdlib.h>
#define MAX_W 5000
#define MAX_ENERGIE 10000
int v[MAX_W+MAX_ENERGIE], e[1000], c[1000];
int main() {
FILE *fin, *fout;
int G, W, i, g, nr, min, s;
fin = fopen ( "energii.in", "r" );
fscanf ( fin, "%d%d", &G, &W );
s = 0;
for ( i = 0; i < G; i++ ) {
fscanf ( fin, "%d%d", &e[i], &c[i] );
s += e[i];
}
fclose ( fin );
if ( s >= W ) {
min = 50000000;
for ( nr = 0; nr < G; nr++ ) {
for ( g = MAX_W + MAX_ENERGIE; g >= c[nr]; g-- ) {
v[g] = v[g] > v[g-c[nr]] + e[nr] ? v[g] : v[g-c[nr]] + e[nr];
if ( v[g] >= W ) {
if ( g < min )
min = g;
}
}
}
}
else
min = -1;
fout = fopen ( "energii.out", "w" );
fprintf ( fout, "%d", min );
fclose ( fin );
return 0;
}