Cod sursa(job #2866394)
| Utilizator | Data | 9 martie 2022 17:48:24 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 0 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.64 kb |
#include <fstream>
#include <bitset>
using namespace std;
ifstream fin ("rucsac.in");
ofstream fout("rucsac.out");
int D[10010];
int n,m,G,g,i,j,p,sol;
bitset<10010> V;
int main()
{
fin>>n>>G;
V[0]=1;
m=1;
for(i=1;i<=n;i++)
{
fin>>g>>p;
m=m+g;
if(m>G)
m=G;
for(j=m;j>=0;j--)
{
if(V[j]==1)
{
if(j+g<=G&&D[j]+p>D[j+g])
{
V[j+g]=1;
D[j+g]=D[j]+p;
sol=max(sol,D[j+g]);
}
}
}
}
fout<<sol;
