Submission #265434

#TimeUsernameProblemLanguageResultExecution timeMemory
265434mjkocijanDetecting Molecules (IOI16_molecules)C++14
100 / 100
70 ms9060 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;
#define X first
#define Y second
#define pb push_back
typedef long long ll;
typedef pair<ll, ll> ii;

int n;
vector<ii> v;
vector<int> rj;
queue<ii> reza;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
  n = w.size();
  for (int i = 0; i < n; i++) {
  	v.pb({w[i], i});
  }
  sort(v.begin(), v.end());
  ll sum = 0;
  for (int i = 0; i < n; i++) {
  	sum += v[i].X;
  	reza.push(v[i]);//printf("+%d\n", v[i].X);
  	while (!reza.empty() && sum > u) {
  		sum -= reza.front().X;//printf("-%d\n", reza.front().X);
  		reza.pop();
  	}
  	if (sum >= l && sum <= u) {
  		while (!reza.empty()) {
  			rj.pb(reza.front().Y);
  			reza.pop();
  		}
  		return rj;
  	}
  }
  return std::vector<int>(0);
}
#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...