Submission #170425

#TimeUsernameProblemLanguageResultExecution timeMemory
170425AlexLuchianovDetecting Molecules (IOI16_molecules)C++14
9 / 100
2 ms380 KiB
#include "molecules.h"

using ll = long long;

int const nmax = 100000;
int seen[1 + nmax];

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
  std::vector<int> sol;
  int n = w.size();
  ll sum1 = 0, sum2 = 0;
  for(int i = 0; i < n; i++){
    seen[i] = 1;
    sum1 += w[i];
    sum2 += w[n - 1 - i];
    if(sum1 <= u && l <= sum2){

      int ptr = 0;
      while(sum1 < l){
        seen[ptr] = 0;
        seen[n - 1 - ptr] = 1;
        sum1 -= w[ptr];
        sum1 += w[n - 1 - ptr];
      }
      for(int i = 0; i < n; i++)
        if(seen[i] == 1)
          sol.push_back(i);
      return sol;
    }
  }
  return sol;
}
#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...