Pagini recente » Cod sursa (job #1904442) | Cod sursa (job #2380062) | Cod sursa (job #1193229) | Cod sursa (job #3036466) | Cod sursa (job #614126)
Cod sursa(job #614126)
#include <iostream>
#include <fstream>
#define N 5050
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
int n,c,p[N],g[N],cost[N][N];
void citire()
{
fin>>n;
fin>>c;
for(int i=0;i<n;i++)
fin>>g[i]>>p[i];
}
void Complet_Cost()
{
for(int j=0;j<c;j++)
if(j==g[0] && g[0]<=c)
cost[0][j]=p[0];
for(int i=1;i<n;i++)
{
for(int j=1;j<=c;j++)
{
int maxx=-1;
if(j==g[i] && g[i]<=c)
if(maxx < p[i])
maxx = p[i];
if(maxx < cost[i-1][j])
maxx = cost[i-1][j];
if(g[i]<j && j<=c)
if(maxx < cost[i-1][j-g[i]] + p[i])
maxx = cost[i-1][j-g[i]] + p[i];
cost[i][j]=maxx;
}
}
fout << cost[n-1][c]<<"\n";
}
int main()
{
citire();
Complet_Cost();
return 0;
}