Pagini recente » Cod sursa (job #2039276) | Cod sursa (job #2675913) | Cod sursa (job #2811959) | Cod sursa (job #2971518) | Cod sursa (job #769540)
Cod sursa(job #769540)
#include <fstream>
#define MAXS 10004
#define MAXN 5003
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int V[MAXS], T[MAXS], P[MAXS];
int A[MAXN];
int N, S, i, j, maxim;
int main() {
f>>N>>S;
for (i=1;i<=N;i++)
f>>A[i]>>P[i];
for (i=1;i<=N;i++) {
for (j=S;j>=0;j--)
if ( (V[j] !=0 || j==0) && j+A[i] <= S) {
if (V[j+A[i]] < V[j] + P[i])
V[j+A[i]] = V[j] + P[i];
T[j+A[i]] = i;
/* if (j+A[i] == S)
break;
*/
}
/*
for (j=1;j<=S;j++)
g<<V[j]<<" ";
g<<"\n";
*/
}
for (i=S;i>=0;i--)
if (V[i] > maxim)
maxim = V[i];
g<<maxim;
return 0;
}