Pagini recente » Cod sursa (job #801300) | Cod sursa (job #2744642) | Cod sursa (job #2607717) | Cod sursa (job #2515441) | Cod sursa (job #877185)
Cod sursa(job #877185)
#include <stdio.h>
#include <algorithm>
using namespace std;
//Definitii
#define weight first
#define cost second
//Constante
const int sz = (int)5e4+1;
const int szy = (int)1e5+1;
FILE *in,*out;
int num, weightM;
int matrix[sz][szy];
pair<int, int> object[sz];
int main()
{
in=fopen("rucsac.in","rt");
out=fopen("rucsac.out","wt");
fscanf(in,"%d%d",&num,&weightM);
for(int i=1; i<=num; ++i)
fscanf(in,"%d%d",&object[i].weight,&object[i].cost);
for(int i=1; i<=num; ++i)
for(int j=1; j<=weightM; ++j)
{
if(object[i].weight <= j)
matrix[i][j] = max(matrix[i-1][j], matrix[i-1][j-object[i].weight]+object[i].cost);
else
matrix[i][j] = matrix[i-1][j];
}
fprintf(out,"%d",matrix[num][weightM]);
fclose(in);
fclose(out);
return 0;
}