Pagini recente » Cod sursa (job #1972839) | Cod sursa (job #1605181) | Cod sursa (job #2970842) | Cod sursa (job #2862857) | Cod sursa (job #2615853)
#include <stdio.h>
int g[5000], p[5000];
int l[10001], lc[10001];
int main() {
FILE *fin = fopen( "rucsac.in", "r" );
FILE *fout = fopen( "rucsac.out", "w" );
int n, G, i, j;
fscanf( fin, "%d%d", &n, &G );
for ( i = 0; i < n; ++i ) {
fscanf( fin, "%d%d", &g[i], &p[i] );
}
for ( i = 0; i < n; ++i ) {
for ( j = 1; j <= G; ++j ) {
if ( j - g[i] >= 0 ) {
lc[j] = l[j] > l[j - g[i]] + p[i] ? l[j] : l[j - g[i]] + p[i];
} else {
lc[j] = l[j];
}
}
for ( j = 1; j <= G; ++j ) {
l[j] = lc[j];
}
}
fprintf( fout, "%d", l[G] );
fclose( fin );
fclose( fout );
return 0;
}