Submission #725446

#TimeUsernameProblemLanguageResultExecution timeMemory
725446AndrijaMDetecting Molecules (IOI16_molecules)C++14
0 / 100
1 ms212 KiB
#include <bits/stdc++.h> using namespace std; vector<int> find_subset(int l, int u, vector<int> w) { sort(w.begin(),w.end()); int dp[(int)w.size()+1][u+1]; memset(dp,-1,sizeof dp); int n=(int)w.size(); vector<int>arr; int cap; for(int idx=0;idx<=n;idx++) { for(cap=0;cap<=u;cap++) { if(idx==0 || cap==0) { dp[idx][cap]=0; } else { int nt=0+dp[idx-1][cap]; int t=0; if(w[idx]<=cap) { t=w[idx]+dp[idx-1][cap-w[idx]]; } dp[idx][cap]=max(nt,t); } } } int rez=dp[n][u]; for(int i=n;i>0 && rez>0;i--) { if(rez==dp[i-1][cap]) { continue; } else { arr.push_back(i-1); rez-=w[i-1]; cap-=w[i-1]; } } return arr; }
#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...
#Verdict Execution timeMemoryGrader output
Fetching results...