이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
#include "molecules.h"
#include <iostream>
#include <string>
#include <set>
#include <map>
#include <cstring>
#include <unordered_map>
#include <vector>
#include <fstream>
#include <bitset>
#include <tuple>
#include <cmath>
#include <cstdint>
#include <stack>
#include <cassert>
#include <cstdio>
#include <queue>
#include <iterator>
#include <iomanip>
#include <algorithm>
#include <sstream>
using namespace std;
int l, u;
vector<pair<int, int>> w_sort;
vector<int> out;
std::vector<int> find_subset(signed _l, signed _u, std::vector<int> w) {
l = _l;
u = _u;
int n = w.size();
w_sort.resize(n);
vector<long long> prefx(n + 1);
for (int i = 0; i < n; i++) w_sort[i] = { w[i],i };
sort(w_sort.begin(), w_sort.end());
for (int i = 1; i <= n; i++)
{
prefx[i] = prefx[i - 1] + w_sort[i - 1].first;
}
int i = 0, j = 0;
bool res=false;
while (i <= j && j < n) {
long long sum = prefx[j + 1] - prefx[i];
if (sum >= l && sum <= u) {
res = true;
break;
}
else if (sum < l) {
j++;
if (j >= n) break;
}
else {
if (i == j) j++;
if (j >= n) break;
i++;
}
}
if (res) {
for (int v = i; v <= j; v++) out.push_back(w_sort[v].second);
return out;
}
return std::vector<int>(0);
}
# | 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... |