이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include <bits/stdc++.h>
using namespace std;
#define int long long
int const mxN = 100;
int dp[105][2005], cnt[105], n,w,k;
pair<int,int> v[mxN];
int solve ( int i, int w) {
if(i==n) return 0;
if(~dp[i][w]) return dp[i][w];
int ans = solve(i+1, w);
for(int c=1; c*v[i].second<=w && c<=cnt[i]; c++) { ans = max(ans, solve(i+1, w-c*v[i].second)+c*v[i].first); }
return dp[i][w] = ans;
}
signed main() {
ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(NULL);
cin>>w>>n;
for(int i=0; i<n; i++) cin>>v[i].first>>v[i].second>>cnt[i];
memset(dp,-1,sizeof dp);
cout<<solve(0,w)<<'\n';
return 0;
}
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|
Fetching results... |