# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
227603 | 2020-04-28T04:26:43 Z | AASG | Detecting Molecules (IOI16_molecules) | C++11 | 0 ms | 0 KB |
#include<bits/stdc++.h> #include "molecules.h" using namespace std; vector<int> find_subset(int l, int u, vector<int> w) { int n=w.size(); vector<pair<long long,int> >r; vector<int> rr; for(int i=0;i<n;i++){ r.push_back(make_pair(w[i],i)); } sort(r.begin(),r.end()); long long rt=0; int p1=0,p2=0;bool x=false; while(rt<=u && rr.size()<=n){ if(rt+r[p2].first<u){ rr.push_back(r[p2].second()); rt=rt+r[p2].first; p2++; } else { rr.pop_front(); rt=rt-r[p1].first; p1++; } if(rt>=l && rt<=u){x=true; break; } } sort(rr.begin(),rr.end()); if(!x)rr.clear(); return rr; }