Submission #785655

#TimeUsernameProblemLanguageResultExecution timeMemory
785655BoasDetecting Molecules (IOI16_molecules)C++17
9 / 100
1077 ms308 KiB
#include "molecules.h" using namespace std; #include <bits/stdc++.h> #define MAX_N 200001 #define ALL(x) x.begin(), x.end() typedef vector<int> vi; int L{}; int U{}; int n{}; vi mols; vi addMolecule(const int &i, const int &w, const unordered_set<int> &used) { if (i >= mols.size()) { return {}; } int nw = w + mols[i]; if (nw > U) { return addMolecule(i + 1, w, used); } if (nw >= L) { vi solution(ALL(used)); solution.push_back(i); return solution; } auto dontAdd = addMolecule(i + 1, w, used); if (dontAdd.size() > 0) return dontAdd; unordered_set<int> newUsed(used); newUsed.insert(i); auto add = addMolecule(i + 1, nw, newUsed); if (add.size() > 0) return add; return {}; } vi find_subset(int l, int u, vi w) { n = w.size(); bool allSame = true; for (int i = 1; i < n; i++) { if (w[i] != w[i - 1]) { allSame = false; break; } } if (allSame) { int s = 0; int i = 0; vi res; for (int i = 0; i < n; i++) { s += w[0]; res.push_back(i); if (s > u) break; if (s >= l) return res; } return {}; } L = l; U = u; mols = w; return addMolecule(0, 0, {}); }

Compilation message (stderr)

molecules.cpp: In function 'vi addMolecule(const int&, const int&, const std::unordered_set<int>&)':
molecules.cpp:21:11: warning: comparison of integer expressions of different signedness: 'const int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare]
   21 |     if (i >= mols.size())
      |         ~~^~~~~~~~~~~~~~
molecules.cpp: In function 'vi find_subset(int, int, vi)':
molecules.cpp:62:13: warning: unused variable 'i' [-Wunused-variable]
   62 |         int i = 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...
#Verdict Execution timeMemoryGrader output
Fetching results...