Pagini recente » Monitorul de evaluare | Cod sursa (job #1773387) | Cod sursa (job #182743) | Cod sursa (job #787598) | Cod sursa (job #2202247)
#include <iostream>
#include <algorithm>
#include <stdio.h>
#define NMAX 5001
using namespace std;
int mat [ 2 ] [ NMAX * 2 ] ;
int main() {
FILE *fin, *fout ;
fin = fopen ("energii.in", "r" ) ;
fout = fopen ("energii.out", "w" ) ;
int g, w, e, l, i, c, j ;
fscanf (fin, "%d%d", &g, &w ) ;
l = 0 ;
for (i = 0 ; i < g ; i++ ) {
fscanf (fin, "%d%d", &e, &c ) ;
for (j = 0 ; j <= w ; j++ ) {
mat[1-l][j] = mat[l][j] ;
if (e <= j ) {
mat[1-l][j] = max(mat[1-l][j], (mat[l][j-e] + c) ) ;
}
}
l = 1 - l ;
}
fprintf (fout, "%d", mat[l][w] ) ;
return 0;
}