Submission #1870783
Source Code Expand
#include <iostream> #include <algorithm> #include <vector> #include <string> #include <set> #include <stack> #include <queue> using namespace std; long long n,W,v[101],w[101],dp[101][101][301]; long long solve(long long i,long long j,long long sum){ if(w[0]*j+sum>W)return 0; if(i==n)return 0; if(dp[i][j][sum]!=0)return dp[i][j][sum]; else{ dp[i][j][sum]=solve(i+1,j,sum); if(w[0]*(j+1)+sum+w[i]-w[0]<=W){ dp[i][j][sum]=max(solve(i+1,j,sum),solve(i+1,j+1,sum+w[i]-w[0])+v[i]); } return dp[i][j][sum]; } } int main(void){ cin>>n>>W; for(int i=0;i<n;i++){ cin>>w[i]>>v[i]; } cout<<solve(0,0,0)<<endl; return 0; }
Submission Info
Submission Time | |
---|---|
Task | D - Simple Knapsack |
User | Hirosesesese23 |
Language | C++14 (GCC 5.4.1) |
Score | 400 |
Code Size | 739 Byte |
Status | AC |
Exec Time | 9 ms |
Memory | 22016 KB |
Judge Result
Set Name | Sample | All | ||||
---|---|---|---|---|---|---|
Score / Max Score | 0 / 0 | 400 / 400 | ||||
Status |
|
|
Set Name | Test Cases |
---|---|
Sample | example0, example1, example2, example3 |
All | antigreedy0, antigreedy1, antigreedy2, example0, example1, example2, example3, quarter0, quarter1, quarter2, rand0, rand1, rand2, smallw0, smallw1, smallw2 |
Case Name | Status | Exec Time | Memory |
---|---|---|---|
antigreedy0 | AC | 7 ms | 22016 KB |
antigreedy1 | AC | 8 ms | 22016 KB |
antigreedy2 | AC | 7 ms | 22016 KB |
example0 | AC | 1 ms | 256 KB |
example1 | AC | 1 ms | 256 KB |
example2 | AC | 1 ms | 256 KB |
example3 | AC | 1 ms | 256 KB |
quarter0 | AC | 9 ms | 21376 KB |
quarter1 | AC | 8 ms | 21248 KB |
quarter2 | AC | 7 ms | 21120 KB |
rand0 | AC | 1 ms | 256 KB |
rand1 | AC | 4 ms | 10496 KB |
rand2 | AC | 2 ms | 4352 KB |
smallw0 | AC | 6 ms | 20864 KB |
smallw1 | AC | 6 ms | 20864 KB |
smallw2 | AC | 7 ms | 20992 KB |