제출 #265607

#제출 시각아이디문제언어결과실행 시간메모리
265607cjoaDetecting Molecules (IOI16_molecules)C++11
19 / 100
4 ms768 KiB
#include "molecules.h" #include <iostream> #include <vector> #include <bitset> #include <cassert> using namespace std; typedef bitset<500001> BS; typedef vector<int> VI; typedef vector<VI> VVI; std::vector<int> find_subset(int l, int u, std::vector<int> w) { const int N = w.size(); // assert(N <= 100 && u <= 1000); BS can; can[0] = true; for (int n = 0; n < N; ++n) { // cerr << "* n:" << n << " w:" << w[n] << endl; // cerr << can[n] << endl; // cerr << (can[n] << w[n]) << endl; can |= can << w[n]; } for (int sum = l; sum <= u; ++sum) { if (can[sum]) { vector<int> res; for (int s = sum, n = N-1; s != 0; --n) { assert(n >= 0); if (s - w[n] >= 0 && can[s - w[n]]) { res.push_back(n); s -= w[n]; } } 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...