Cod sursa(job #999508)
| Utilizator | Data | 20 septembrie 2013 16:34:28 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 55 |
| Compilator | cpp | Status | done |
| Runda | Arhiva educationala | Marime | 0.56 kb |
#include<fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream g("rucsac.out");
int m,ma,j,i,n,gr,v[20001],x,y;
int mini(int a,int b)
{
if(a<b)
return a;
return b;
}
int maxi(int a,int b)
{
if(a>b)
return a;
return b;
}
int main()
{
f>>n>>gr;
for(j=1;j<=n;++j)
{
f>>x>>y;
for(i=m;i>=1;--i)
if(v[i]&&v[i+x]<v[i]+y)
v[i+x]=v[i]+y;
v[x]=y;
m=mini(m+x,gr);
}
for(i=1;i<=gr;++i)
if(v[i]>ma)
ma=v[i];
g<<ma<<'\n';
return 0;
}
