제출 #1345224

#제출 시각아이디문제언어결과실행 시간메모리
1345224ElayV13Detecting Molecules (IOI16_molecules)C++20
9 / 100
1 ms344 KiB
#include "molecules.h"
#include "bits/stdc++.h"
using namespace std;

#define ll long long

vector<int>find_subset(int l,int u,vector<int>w)
{
      ll L=l;
      int n=(int)w.size();
      vector<pair<ll,ll>>srt;
      for(int i=0;i<n;i++) srt.push_back({w[i],i});
      sort(srt.begin(),srt.end());
      vector<ll>p(n);
      p[0]=srt[0].first;
      for(int i=1;i<n;i++) p[i]=p[i-1]+srt[i].first;
      for(int i=0;i<n;i++){
            ll mns=((!i)?0:p[i-1]);
            int l=i,r=n-1,mn=n;
            while(l<=r){
                  int mid=(l+r)>>1;
                  if(p[mid]-mns>=L){
                        mn=min(mn,mid);
                        r=mid-1;
                  }
                  else l=mid+1;
            }
            if(mn==n) continue;
            ll sum=p[mn]-mns;
            if(sum<=u){
                  vector<int>res;
                  for(int j=i;j<=mn;j++) res.push_back(j);
                  return res;
            }
      }
      return {};
}
#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...