Cod sursa(job #1866077)
Utilizator | Data | 2 februarie 2017 16:55:00 | |
---|---|---|---|
Problema | Problema rucsacului | Scor | 100 |
Compilator | cpp | Status | done |
Runda | Arhiva educationala | Marime | 0.49 kb |
#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
int n,g,w[5100],p[5100],i,j,D[2][10100];
int main(){
ifstream cin ("rucsac.in");
ofstream cout ("rucsac.out");
cin>>n>>g;
for (i=1; i<=n; i++) cin>>w[i]>>p[i];
int q=0;
for (i=1; i<=n; i++){
for (j=0; j<=g; j++){
D[1-q][j]=D[q][j];
if (j>=w[i]) D[1-q][j]=max(D[1-q][j],(D[q][j-w[i]]+p[i]));
}
q=1-q;
}
cout<<D[q][g];
return 0;
}