Submission #972420

#TimeUsernameProblemLanguageResultExecution timeMemory
972420TanosDetecting Molecules (IOI16_molecules)C++17
9 / 100
1 ms508 KiB
#include <bits/stdc++.h>

using namespace std;

#define ll long long
#define x first
#define y second
#define all(x) x.begin(), x.end()
#define el "\n"
#define pb push_back
#define pp pop_back
#define pii pair <int, int>
#define pll pair <ll, ll>
#define ibase ios_base::sync_with_stdio(0), cin.tie(0);

const int N = 5e5 + 5, M = 1e3 + 5, pw = 31;
const ll MAX = 1e15, inf = 1e9 + 7;

vector <int> find_subset(int l, int u, vector <int> a) {
	int n = a.size();
	pair <int, int> p[n];
	for (int i = 0; i < n; i++) {
		p[i] = {a[i], i};
	}
	sort(p, p + n);
	ll sum = 0, j = 0, last;
	for (last = 0; last < n; last++) {
		sum += p[last].x;
		last = last;
		if (sum >= l && sum <= u) {
			break;
		}
		else if (sum >= l) {
			j = 0;
			while (sum > u)
				sum -= p[j++].x;
			if (sum >= l && sum <= u)
				break;
		}
	}
	vector <int> ans;
	ans.clear();
	if (l > sum || sum > u)
		return {};
	for (int i = j; i <= last; i++)
		ans.pb(p[i].y);
	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...