제출 #690590

#제출 시각아이디문제언어결과실행 시간메모리
690590zeroesandonesDetecting Molecules (IOI16_molecules)C++17
100 / 100
61 ms8724 KiB
#include "bits/stdc++.h" #include "molecules.h" using namespace std; using ll = long long; using pi = pair<long long, long long>; using vi = vector<long long>; #define pb emplace_back vector<int> find_subset(int l, int u, vector<int> w) { int n = w.size(); vector<pi> val; for(int i = 0; i < n; ++i) { val.pb(w[i], i); } sort(val.begin(), val.end()); pi ans = {-1, -1}; vi pref(n); for(int i = 0; i < n; ++i) { pref[i] = val[i].first; if(i) pref[i] += pref[i - 1]; } for(int i = 0; i < n; ++i) { if(pref[i] < l) continue; if(pref[i] <= u) { ans = {0, i}; break; } ll req = pref[i] - u; auto it = lower_bound(pref.begin(), pref.end(), req) - pref.begin(); if(it > i) continue; ll sum = pref[i] - pref[it]; if(l <= sum && sum <= u) { ans = {it + 1, i}; break; } } vector<int> res; pi bad = {-1, -1}; if(ans == bad) { return res; } for(int i = ans.first; i <= ans.second; ++i) { res.pb(val[i].second); } return res; }
#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...