Pagini recente » Cod sursa (job #1417153) | Cod sursa (job #2442233) | Cod sursa (job #2103055) | Cod sursa (job #2543131) | Cod sursa (job #2429281)
#include<fstream>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
int s[10001];
struct ura{
int g,c;};
ura v[5001];
int main(){
int n,gmax,v1,g1,i,j,max;
in>>n>>gmax;
for(i=1;i<=n;i++)
{
in>>g1>>v1;
v[i].g=g1;
v[i].c=v1;
}
max=0;
for(i=1;i<=n;i++)
{
for(j=max;j>=1;j--)
{
if(s[j]!=0)
if(j+v[i].g<=gmax)
if(s[j]+v[i].c>s[j+v[i].g])s[j+v[i].g]=s[j]+v[i].c;
}
if(max+v[i].g>gmax)max=gmax;
else max=max+v[i].g;
if(s[v[i].g]<v[i].c)s[v[i].g]=v[i].c;
}
out<<s[gmax];
return 0;
}