Submission #1082800

#TimeUsernameProblemLanguageResultExecution timeMemory
10828001tejasjainKnapsack (NOI18_knapsack)C++17
37 / 100
1032 ms456 KiB
#include<bits/stdc++.h> using namespace std; #define int long long typedef long long ll; //By Tejas India, https://www.linkedin.com/in/1tejasjain/ // void call(){ // int s, n; cin>>s>>n; // vector<int> maxValueByWeight(s+1, 0); // maxValueByWeight[0] = 0; // for(int item=1; item<=n; item++){ // int value, weight, quantity; cin>>value>>weight>>quantity; // // cout<<"Item: "<<item<<endl; // for(int i=1; i<=quantity; i++) // for(int ks = s; ks>=0; ks--){ // if(ks-weight>=0) // maxValueByWeight[ks] = max(maxValueByWeight[ks], maxValueByWeight[ks-weight]+value); // // cout<<ks<<": "<<maxValueByWeight[ks]<<" "; // } // // cout<<endl; // } // cout<<maxValueByWeight[s]<<endl; // } void call(){ int s, n; cin>>s>>n; vector<int> maxValueByWeight(s+1, 0); maxValueByWeight[0] = 0; map<int, vector<pair<int, int>>> byWeight; for(int item=1; item<=n; item++){ int value, weight, quantity; cin>>value>>weight>>quantity; byWeight[weight].push_back({value, quantity}); } for(auto [weight, vec]: byWeight){ sort(vec.begin(), vec.end(), greater<pair<int, int>>()); for(auto [value, quantity]: vec){ // cout<<"Item: "<<item<<endl; for(int i=1; i<=quantity; i++) for(int ks = s; ks>=0; ks--){ if(ks-weight>=0) maxValueByWeight[ks] = max(maxValueByWeight[ks], maxValueByWeight[ks-weight]+value); // cout<<ks<<": "<<maxValueByWeight[ks]<<" "; } // cout<<endl; } } cout<<maxValueByWeight[s]<<endl; } signed main() { ios_base::sync_with_stdio(false); cin.tie(NULL); ll t=1; //cin>>t; while(t--){ call(); } return 0; }
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...