Submission #961264

#TimeUsernameProblemLanguageResultExecution timeMemory
961264aminjon__Detecting Molecules (IOI16_molecules)C++17
69 / 100
34 ms5836 KiB
#include<bits/stdc++.h> using namespace std; pair<int,int>w2[200012]; vector<int> find_subset(int l , int r , vector<int> w){ vector <int>result; int n = w.size(),sum = 0 , left = 0 , right = 0; for(int i = 0;i < n;i++){ w2[i].first = w[i]; w2[i].second = i; } sort(w2 , w2+n , greater<pair<int,int>>()); while(sum < l && right < n){ sum += w2[right].first; result.push_back(w2[right].second); right++; } if(sum >= l && sum <= r){ return result; } else if(sum < l || right == n){ result.clear(); return result; } int last = n-1; while(last >= right && sum > r && left < right){ sum -= w2[left].first-w2[last].first; result[left] = w2[last].second; last--; left++; } if(sum >= l && sum <= r){ return result; } while(sum > r && result.size()>0){ sum -= w[result.back()]; result.pop_back(); } result.clear(); return result; }
#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...