Submission
Status:
[PPPPPPPPPPPPPPP]
Subtask/Task Score:
{100/100}
Score: 100
User: s0m30n3
Problemset: laracroft
Language: cpp
Time: 0.003 second
Submitted On: 2026-03-18 13:51:22
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
int main(){
ios_base::sync_with_stdio(false);
cin.tie(nullptr);
int n,w;
cin>>n>>w;
vector<pair<ll, ll>> thing(n+1);
for(int i=1;i<=n;i++){
cin>>thing[i].second;
}
for(int i=1;i<=n;i++){
cin>>thing[i].first;
}
// 0/1 Knapsack
vector<pair<ll,ll>> dp(w+1, {0,0}); // value weight
for(int i=1;i<=n;i++){
for(int j=w;j>=thing[i].first;j--){
ll new_v = dp[j-thing[i].first].first+thing[i].second;
ll new_w = dp[j-thing[i].first].second+thing[i].first;
if(new_v>dp[j].first){
dp[j].first = new_v;
dp[j].second = new_w;
}
else if(new_v==dp[j].first){
dp[j].second = min(dp[j].second, new_w);
}
}
}
cout << dp[w].first << " " << dp[w].second;
}