제출 #589858

#제출 시각아이디문제언어결과실행 시간메모리
589858KrisjanisPDetecting Molecules (IOI16_molecules)C++14
100 / 100
75 ms8220 KiB
#include "molecules.h"
#include <bits/stdc++.h>

using namespace std;
typedef long long ll;
typedef pair<ll,ll> ii;
vector<int> find_subset(int l, int u, vector<int> w) {
    ll n = w.size();
    vector<ii> wi;
    for(ll i=0;i<n;i++) wi.push_back({w[i],i});
    sort(wi.begin(),wi.end());
    ll a=0,b=0,s=wi[0].first;
    while(b+1<n&&(s+wi[b+1].first)<=u)
        s+=wi[++b].first;
    //cout<<a<<" "<<b<<" "<<s<<"\n";
    while(b+1<n&&(s+wi[b+1].first-wi[a].first)<=u)
        s+=wi[++b].first-wi[a++].first;
    //cout<<a<<" "<<b<<" "<<s<<"\n";
    if(s>=l&&s<=u)
    {
        vector<int> res;
        for(ll i=a;i<=b;i++)
            res.push_back(wi[i].second);
        return res;
    }
    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...