제출 #1361094

#제출 시각아이디문제언어결과실행 시간메모리
1361094maya_sDetecting Molecules (IOI16_molecules)C++20
100 / 100
27 ms5288 KiB
#include<bits/stdc++.h>
#include "molecules.h"
using namespace std;
typedef long long ll;
typedef pair<ll, ll> pll;

std::vector<int> find_subset(int L, int U, std::vector<int> W) {
   ll n = W.size(), l = L, u = U;
   vector<pll> w(n);
   for(ll i = 0; i < n; i++) w[i] = {W[i], i};
   sort(w.begin(), w.end());
   ll lo = 1, hi = n+1;
   vector<int> ans;
   while(lo < hi){
    ll k = (lo + hi) / 2, s = 0;
    for(ll i = 0; i < k; i++) s += w[i].first;
    if(s > u) {hi = k; continue;}
    if(s >= l) {
        for(ll j = 0; j < k; j++) ans.push_back(w[j].second);
        break;
    }
    for(ll i = k; i < n; i++){
        s -= w[i-k].first; s += w[i].first;
        if(s >= l){
            for(ll j = i-k+1; j <= i; j++) ans.push_back(w[j].second);
            break;
        }
    }
    if(ans.size()) break;
    lo = k+1;
   }
   return ans;
}
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…
#결과 실행 시간메모리채점기 출력
결과를 불러오는 중입니다…