Submission #88672

#TimeUsernameProblemLanguageResultExecution timeMemory
88672NucleistDetecting Molecules (IOI16_molecules)C++14
31 / 100
101 ms66560 KiB
#include "molecules.h" #include <bits/stdc++.h> using namespace std; vector<int> find_subset(int l, int u, std::vector<int> w) { bool n=false;bool ka=false; int k = w.size();int f=l;l=u;vector<int> solution; for(int i=0;i<k;i++) { if(w[i]==0&&min(f,l)==0) { solution.push_back(i); n=true; } } if(!n&&l!=0) { if(f==0) f++; int sum = l; bool subset[k+1][sum+1]; for (int i = 0; i <= k; i++) subset[i][0] = true; for (int i = 1; i <= sum; i++) subset[0][i] = false; for (int i = 1; i <= k; i++) { for (int j = 1; j <= sum; j++) { if(j<w[i-1]) subset[i][j] = subset[i-1][j]; if (j >= w[i-1]) subset[i][j] = subset[i-1][j] || subset[i - 1][j-w[i-1]]; } } for (int j = f; j <= l; j++) { int lamda=j; if(subset[k][j]) { for(int i = k;i>=1;i--) { if(subset[i][lamda-w[i-1]]&&lamda-w[i-1]>=0) { solution.push_back(i-1); lamda -= w[i-1]; ka=true; if(lamda==0) break; } } } if(ka) break; } } return solution; }
#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...