Pagini recente » Diferente pentru implica-te/arhiva-educationala intre reviziile 89 si 90 | Diferente pentru implica-te/arhiva-educationala intre reviziile 86 si 87 | Diferente pentru implica-te/arhiva-educationala intre reviziile 91 si 92 | Diferente pentru implica-te/arhiva-educationala intre reviziile 75 si 76 | Cod sursa (job #1974257)
#include <iostream>
#include <fstream>
#include <cstring>
#include <stack>
using namespace std;
ifstream in("rucsac.in");
ofstream out("rucsac.out");
#define ll long long
const ll GMax = 1e4 + 5;
int N,G;
ll dp[GMax];
int main() {
in>>N>>G;
for (int i=1;i<=N;++i) {
int weight,value;
in>>weight>>value;
for (int j=G;j - weight >= 0;--j) {
dp[j] = max(dp[j],dp[j - weight] + value);
}
}
out<<dp[G]<<'\n';
in.close();out.close();
return 0;
}