Submission #265589

#TimeUsernameProblemLanguageResultExecution timeMemory
265589cjoaDetecting Molecules (IOI16_molecules)C++11
19 / 100
1 ms512 KiB
#include "molecules.h" #include <iostream> #include <vector> #include <map> #include <cassert> using namespace std; std::vector<int> find_subset(int l, int u, std::vector<int> w) { const int N = w.size(); map< int,vector<int> > MAP; for (int i = 0; i < N; ++i) MAP[ w[i] ].push_back(i); assert(MAP.size() <= 2); int N1 = MAP.begin()->second.size(); int W1 = MAP.begin()->first; int N2 = MAP.size() == 1 ? 0 : MAP.rbegin()->second.size(); int W2 = MAP.size() == 1 ? 0 : MAP.rbegin()->first; for (int n1 = 0; n1 <= N1; ++n1) { for (int n2 = 0; n2 <= N2; ++n2) { long long sum = n1 * W1 + n2 * W2; if (l <= sum && sum <= u) { vector<int> res; for (int i = 0; i < n1; ++i) res.push_back( MAP[W1][i] ); for (int i = 0; i < n2; ++i) res.push_back( MAP[W2][i] ); return res; } } } return {}; }
#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...