# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1064558 | 2024-08-18T14:32:35 Z | Rigobertus | Detecting Molecules (IOI16_molecules) | C++17 | 0 ms | 0 KB |
#include <iostream> #include <algorithm> #include <vector> #include <map> #include <set> #include "molecules.h" using namespace std; vector<int> find_subset(long long l, long long u, vector<long long> w) { long long n = w.size(); vector<pair<long long, int>> v; vector<int> result; for (int i = 0; i < n; i++) { v.push_back({ w[i], i + 1 }); } sort(w.begin(), w.end()); long long sum = 0; for (int i = 0; i < n; i++) { sum += w[i]; } for (int i = n - 1; i >= 0; i--) { if (sum - v[i].first < l) { result.push_back(v[i].second); } else { sum -= v[i].first; } } if (sum < l || sum > u) { return {}; } sort(result.begin(), result.end()); return result; }