Submission #83416

#TimeUsernameProblemLanguageResultExecution timeMemory
83416TuskDetecting Molecules (IOI16_molecules)C++14
100 / 100
84 ms31536 KiB
#include "molecules.h"
#include <bits/stdc++.h>

#define pii pair<int, int>
#define x first
#define y second

using namespace std;

vector<pii> V;
vector<int> ans;

vector<int> find_subset(int l, int u, vector<int> w) {
	for(int i = 0; i < w.size(); i++) V.emplace_back(w[i], i);
	sort(V.begin(), V.end());
	int L = 0, R = 0;
	long long sum = 0;
	while(L < w.size()) {
		while(R < w.size() && sum < l) sum += (long long)V[R++].x;
		if(l <= sum && sum <= u) {
			for(int i = L; i < R; i++) ans.emplace_back(V[i].y);
			return ans;
		}
		sum -= (long long)V[L++].x;
	}
	return {};
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:14:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  for(int i = 0; i < w.size(); i++) V.emplace_back(w[i], i);
                 ~~^~~~~~~~~~
molecules.cpp:18:10: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
  while(L < w.size()) {
        ~~^~~~~~~~~~
molecules.cpp:19:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
   while(R < w.size() && sum < l) sum += (long long)V[R++].x;
         ~~^~~~~~~~~~
#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...