Cod sursa(job #1565075)
Utilizator | Istrate Ruxandra ris99 | Data | 10 ianuarie 2016 13:14:11 |
---|---|---|---|
Problema | Problema rucsacului | Scor | 25 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.45 kb |
#include <fstream>
using namespace std;
ifstream f("rucsac.in");
ofstream h("rucsac.out");
int n,gmax,max1,s[100001],j,i,p[50001],g[50001],rez;
int main()
{ f>>n>>gmax;
s[0]=max1=0;
for(i=1;i<=n;i++)
f>>g[i]>>p[i];
for(i=1;i<=n;i++)
for(j=max1;j>=0;j--)
if(s[j+g[i]]<s[j]+p[i])
{ s[j+g[i]]=s[j]+p[i];
if(j+g[i]>max1) max1=j+g[i];
}
rez=0;
for(i=0;i<=gmax;i++)
if(rez<s[i]) rez=s[i];
h<<rez;
return 0;
}