Submission #783636

#TimeUsernameProblemLanguageResultExecution timeMemory
783636kebineKnapsack (NOI18_knapsack)C++17
100 / 100
48 ms5152 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef unsigned long long ull; #define fi first #define se second #define pb push_back #define TC int t; cin>>t; while(t--) #define all(x) (x).begin(),(x).end() //*AC BERSAMA ALLAH FORTIS FORTUNA ADIUVAT bool comp(pair<ll,ll> a, pair<ll,ll> b){ return a.fi>b.fi; } int main() { ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0); int energi,tipe; cin>>energi>>tipe; vector<pair<pair<ll,ll>,ll > > a; vector<pair<ll,ll> > v[2005], items; // energi, luas for(int i=1;i<=tipe;i++){ ll l,e,k; cin>>l>>e>>k; v[e].pb(make_pair(l,k)); // luas, kuantiti } for(int i=1;i<=energi;i++){ sort(all(v[i]),comp); int idx=0, sz=v[i].size(); ll tmpen=energi; bool flag=1; while(idx<sz && flag){ for(int j=0;j<v[i][idx].se;j++){ // till habis if(tmpen>=i){ tmpen-=i; items.pb(make_pair(i,v[i][idx].fi)); // weight, value } else { flag=0; break; } } idx++; } } int isz=items.size(); // ll dp[isz+1][energi+1]; memset(dp,0,sizeof(dp)); ll dp[2][energi+1]; memset(dp,0,sizeof(dp)); for(int i=1;i<=isz;i++){ for(int j=1;j<=energi;j++){ dp[0][j]=dp[1][j]; if(j>=items[i-1].fi && dp[0][j-items[i-1].fi]+items[i-1].se>dp[1][j]){ dp[1][j] = dp[0][j-items[i-1].fi]+items[i-1].se; } // cout<<dp[1][j]<<' '; } cout<<'\n'; } cout<<dp[1][energi]<<'\n'; 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...