Submission #1162256

#TimeUsernameProblemLanguageResultExecution timeMemory
1162256fel1peKnapsack (NOI18_knapsack)C++20
73 / 100
1096 ms16448 KiB
#include <bits/stdc++.h> // #pragma GCC optimize("Ofast") // #pragma GCC optimize("unroll-loops") // #pragma GCC target("avx2") // #pragma GCC target("bmi,bmi2,popcnt,lzcnt") using namespace std; #define endl '\n' #define all(v) v.begin(), v.end() #define print(v) for(int i=0;i<v.size();i++) cout<<v[i]<<" \n"[i==v.size()-1]; #define mod 1000000007 typedef long long ll; const int INF = 0x3f3f3f3f; const ll LINF = 0x3f3f3f3f3f3f3f3fll; const int MAX = 200500; int add(int a, int b){return (a+b)%mod;} int sub(int a, int b){return (a-b+mod)%mod;} int mul(int a, int b){return (1ll*a*b)%mod;} void solve() { int s,n; cin>>s>>n; vector<ll> w,v; for(int i=0;i<n;i++) { ll x,y,q; cin>>x>>y>>q; for(int i=0;i<=30;i++) { if((1<<i)<=q) { v.push_back((1<<i)*x); w.push_back((1<<i)*y); q-=(1<<i); } } if(q) v.push_back(q*x), w.push_back(q*y); } vector<ll> dp(s+1,0); for(int i=0;i<v.size();i++) { for(int j=s;j>=w[i];j--) { dp[j]=max(dp[j],dp[j-w[i]]+v[i]); } } cout<<dp[s]<<endl; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); int test=1; //cin>>test; while(test--) { solve(); } exit(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...