제출 #789935

#제출 시각아이디문제언어결과실행 시간메모리
789935alvingogoDetecting Molecules (IOI16_molecules)C++14
100 / 100
47 ms14240 KiB
#include "molecules.h" #include <bits/stdc++.h> #pragma GCC optimize("Ofast") #define fs first #define sc second #define p_q priority_queue using namespace std; vector<int> find_subset(int l, int u, vector<int> w) { int n=w.size(); auto z=w; vector<pair<long long,int> > v; for(int i=0;i<n;i++){ v.push_back({w[i],i}); } sort(v.begin(),v.end()); auto a=v,b=v; reverse(b.begin(),b.end()); for(int i=1;i<n;i++){ a[i].fs+=a[i-1].fs; b[i].fs+=b[i-1].fs; } for(int i=0;i<n;i++){ long long x=a[i].fs,y=b[i].fs; if(x>=l && x<=u){ vector<int> c; for(int j=0;j<=i;j++){ c.push_back(a[j].sc); } return c; } else if(y>=l && y<=u){ vector<int> c; for(int j=0;j<=i;j++){ c.push_back(b[j].sc); } return c; } else if(x<=l && y>=u){ vector<int> c; long long f=x; for(int j=0;j<=i;j++){ c.push_back(a[j].sc); } for(int j=0;j<=i;j++){ c[j]=b[j].sc; f+=(v[n-j-1].fs-v[j].fs); if(f>=l && f<=u){ return c; } } } } 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...