# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1264825 | Art | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
// - Art -
#include "molecules.h"
#include <bits/stdc++.h>
#define el cout << '\n'
#define FOR(i, a, b) for (int i = (a), _b = (b); i <= _b; ++i)
#define REV(i, b, a) for (int i = (b), _a = (a); i >= _a; --i)
#define REP(i, c) for (int i = 0, _c = (c); i < _c; ++i)
const int N = 2e5 + 7;
using namespace std;
int idx[N];
int find_subset(int l, int r, int w[], int n, int result[]) {
int it = 0;
long long sum = 0;
REP (i, n) {
idx[i] = i;
}
sort(idx, idx + n, [&](int i, int j) {
return w[i] < w[j];
});
REP (i, n) {
sum += w[idx[i]];
while (sum > r) {
sum -= w[idx[it++]];
}
if (l <= sum) {
int sz = 0;
FOR (j, it, i) {
result[sz++] = idx[j];
}
return i - it + 1;
}
}
return 0;
}