Submission #758570

#TimeUsernameProblemLanguageResultExecution timeMemory
758570JellyTheOctopusDetecting Molecules (IOI16_molecules)C++17
0 / 100
1 ms212 KiB
// IOI 2016 Day 1 Problem 1
// Detecting Molecules
// https://oj.uz/problem/view/IOI16_molecules

#include <bits/stdc++.h>
using namespace std;

#define f first
#define s second

vector<int> find_subset(int l, int u, vector<int> w) {
	int N = (int)w.size();
	vector<pair<int, int>> valWeight(N);
	for (int i = 0; i < N; i++) {
		valWeight[i] = {w[i], i+1};
	}
	sort(valWeight.begin(), valWeight.end());
	deque<int> dq;
	long long curSum = 0;
	int i = 0;
	while (i < N) {
		if (l <= curSum && curSum <= u) {
			break;
		}
		if (curSum < l) {
			curSum += valWeight[i].f;
			dq.push_back(i);
			i++;
			continue;
		}
		if (curSum > u) {
			curSum -= valWeight[dq.front()].f;
			dq.pop_front();
		}
	}
	vector<int> ans;
	while (!dq.empty() && (l <= curSum && curSum <= u)) {
		ans.push_back(valWeight[dq.front()].s);
		dq.pop_front();
	}
	return ans;
}
#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...