Submission #782207

#TimeUsernameProblemLanguageResultExecution timeMemory
782207andecaandeciKnapsack (NOI18_knapsack)C++17
0 / 100
1 ms1492 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; while(idx<sz){ for(int j=0;j<v[i][idx].se;j++){ if(tmpen>i){ tmpen-=i; items.pb(make_pair(i,v[i][idx].fi)); } else break; } idx++; } } int isz=items.size(); ll dp[isz+1][energi+1]; memset(dp,0,sizeof(dp)); for(int i=1;i<=isz;i++){ for(int j=1;j<=energi;j++){ dp[i][j]=dp[i-1][j]; if(j>=items[i-1].fi && dp[i-1][j-items[i-1].fi]+items[i-1].se>dp[i][j]){ dp[i][j] = dp[i-1][j-items[i-1].fi]+items[i-1].se; } } } cout<<dp[isz][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...