제출 #283107

#제출 시각아이디문제언어결과실행 시간메모리
283107sofapudenDetecting Molecules (IOI16_molecules)C++14
69 / 100
54 ms4068 KiB
#include <bits/stdc++.h> #include "molecules.h" using namespace std; typedef long long ll; vector<int> find_subset(int l, int u, vector<int> w) { int n = w.size(); vector<pair<int,int>> v(n); vector<int> out; int sum = 0; for(int i = 0; i < n; ++i){ sum+=w[i]; if(sum > u)break; } if(sum <= u && sum >= l){ out.resize(n); iota(out.begin(),out.end(),0); return out; } for(int i = 0; i < n; ++i){ v[i].first = w[i]; v[i].second = i; } sort(v.begin(), v.end()); int le = 0, ri = n-1; sum = v[n-1].first; while(sum < l && le < ri){ sum+=v[--ri].first; } while(sum > u && le < ri && le < n-ri){ sum-=v[n-le-1].first; sum+=v[le].first; le++; } if(sum <= u && sum >= l){ for(int i = 0; i < le; ++i){ out.push_back(v[i].second); } for(int i = n-1-le; i>= ri; --i){ out.push_back(v[i].second); } return out; } 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...