Cod sursa(job #3362155)
| Utilizator | Data | 3 august 2026 16:39:24 | |
|---|---|---|---|
| Problema | Problema rucsacului | Scor | 100 |
| Compilator | cpp-64 | Status | done |
| Runda | Arhiva educationala | Marime | 0.61 kb |
#include <iostream>
#include <fstream>
using namespace std;
ifstream fin("rucsac.in");
ofstream fout("rucsac.out");
long long dp[2][100005],x[100005],y[100005];
int main()
{
long long n,gmax,i,j,solmax=0;
fin>>n>>gmax;
for(i=1;i<=n;i++){
fin>>x[i]>>y[i];
}
for(i=1;i<=n;i++){
for(j=0;j<=gmax;j++){
dp[i%2][j]=max(dp[i%2][j],dp[(i-1)%2][j]);
if(j+x[i]<=gmax)
dp[i%2][j+x[i]]=max(dp[i%2][j+x[i]],dp[(i-1)%2][j]+y[i]);
}
}
for(j=0;j<=gmax;j++){
solmax=max(solmax,dp[n%2][j]);
}
fout<<solmax;
}
