# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1146714 | KickingKun | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 328 KiB |
#include <bits/stdc++.h>
using namespace std;
#define ll long long
vector <int> find_subset(int l, int u, vector <int> w) {
vector <int> ind(w.size()); iota(ind.begin(), ind.end(), 0);
ll sum = 0; sort (ind.begin(), ind.end(), [&] (int u, int v) {
return w[u] < w[v];
});
for (int x: ind) sum += w[x];
vector <ll> pref(w.size());
pref[0] = w[ind[0]];
for (int i = 1; i < w.size(); i++)
pref[i] = pref[i - 1] + w[ind[i]];
for (int k = 1; k <= w.size(); k++) {
ll miSum = pref[k - 1], maSum = pref[w.size() - 1] - pref[w.size() - k] + w[ind[w.size() - k]];
if (miSum <= u && maSum >= l) {
for (int i = k - 1; i < w.size(); i++) {
ll sum = pref[i] - pref[i - k + 1] + w[ind[i - k]];
// change at most max - min <= u - l
if (l <= sum && sum <= u) {
vector <int> res;
for (int j = i - k + 1; j <= i; j++)
res.emplace_back(ind[j]);
return res;
}
}
}
}
return {};
}
컴파일 시 표준 에러 (stderr) 메시지
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |
# | Verdict | Execution time | Memory | Grader output |
---|---|---|---|---|
Fetching results... |