제출 #958824

#제출 시각아이디문제언어결과실행 시간메모리
958824MinaRagy06Detecting Molecules (IOI16_molecules)C++17
100 / 100
55 ms7268 KiB
#include <bits/stdc++.h>
#include "molecules.h"
#ifdef MINA
#include "grader.cpp"
#endif
using namespace std;
#define ll long long

vector<int> find_subset(int l, int r, vector<int> w) {
	int n = w.size();
	array<int, 2> a[n];
	for (int i = 0; i < n; i++) {
		a[i][0] = w[i];
		a[i][1] = i;
	}
	sort(a, a + n);
	ll prf[n + 1]{};
	for (int i = 0; i < n; i++) {
		prf[i + 1] = prf[i] + a[i][0];
	}
	ll s = 0;
	for (int i = n; i >= 0; i--) {
		int p = lower_bound(prf, prf + n + 1, l - s) - prf;
		if (p - 1 < i && l <= prf[p] + s && prf[p] + s <= r) {
			vector<int> ans;
			for (int j = 0; j < p; j++) {
				ans.push_back(a[j][1]);
			}
			for (int j = i; j < n; j++) {
				ans.push_back(a[j][1]);
			}
			return ans;
		}
		if (i - 1 >= 0) s += a[i - 1][0];
	}
	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...