Cod sursa(job #1607594)
Utilizator | Data | 21 februarie 2016 14:00:18 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 0 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.42 kb |
#include <fstream>
using namespace std;
ifstream fi ("rucsac.in");
ofstream fo ("rucsac.out");
int a[5003][10003],i,j,n,maxi,gt,g[5003],p[5003];
int main()
{
fi>>n>>gt;
for (i=1;i<=n;i++)
fi>>g[i]>>p[i];
for (i=1;i<=n;i++)
for (j=0;j<=gt;j++)
if (g[i]<=j) a[i][j]=max(a[i-1][j],a[i-1][j-g[i]]+p[i]);
for (j=1;j<=gt;j++) maxi=max(maxi,a[n][j]);
fo<<maxi;
return 0;
}