Submission #342035

#TimeUsernameProblemLanguageResultExecution timeMemory
342035SeDunionDetecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms364 KiB
#include<bits/stdc++.h>
using namespace std;
using ll = long long;
const int N = 1e6 + 66;

vector<int> find_subset(int l, int r, vector<int> w) {
	ll L = 0, R = 0;
	int n = (int)w.size();
	vector<pair<int,int>> a(n); for (int i = 0 ; i < n ; ++ i) a[i] = {w[i], i};
	sort(a.begin(), a.end());
	for (int i = 0 ; i < n ; ++ i) {
		L += a[i].first;
		R += a[n - i].first;
		if (L <= r && R >= l) {
			int j = i;
			for ( ; L < l ; ) {
				++j;
				L -= a[j - i - 1].first;
				L += a[j].first;
			}
			vector<int> res;
			for (int q = j - i ; q <= j ; ++ q) {
				res.push_back(a[q].second);
			}
			return res;
		}
	}
	return {};
}
/*
int main() {
	ios_base::sync_with_stdio(0);
	cin.tie(0), cout.tie(0);
	int n, l, u;
	cin >> n >> l >> u;
	vector<int> w(n);
	for (int &i : w) cin >> i;
	auto A = find_subset(l, u, w);
	cout << A.size() << "\n";
	for (int i : A) cout << i << " ";
}

*/
#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...