Submission #145081

#TimeUsernameProblemLanguageResultExecution timeMemory
145081NightlightDetecting Molecules (IOI16_molecules)C++14
100 / 100
65 ms6252 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

vector<int> ans;

vector<int> find_subset(int l, int u, vector<int> w) {
  int N = w.size();
  vector<pair<int, int>> wp;
  for(int i = 0; i < N; i++)
	  wp.push_back(make_pair(w[i], i));
  sort(wp.begin(), wp.end());
  long long sum = wp[0].first;
  int low = 0, up = 0;
  while((sum < l || sum > u) && up < N){
    if(low > up)break;
    if(sum < l){
      up++;
      sum += wp[up].first;
    }else if(sum > u){
      sum -= wp[low].first;
      low++;
    }
//    cout << low << " " << up << " " << sum << "\n";
  }
  if(l <= sum && sum <= u){
    for(int i = low; i <= up; i++){
      ans.push_back(wp[i].second);
    }
    return ans;
  }
  return 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...