제출 #645331

#제출 시각아이디문제언어결과실행 시간메모리
645331vladislav11Detecting Molecules (IOI16_molecules)C++14
100 / 100
46 ms7092 KiB
#include <bits/stdc++.h>

using namespace std;

using ll = long long;

vector<int> find_subset ( int ql, int qr, vector<int> w )
{
    ll tl = ql, tr = qr;
    
    int n = w.size();
    
    vector< pair<ll,int> > a(n);
    
    for ( int i=0; i<n; i++ )
        a[i] = { w[i], i };
    
    sort( a.begin(), a.end() );
    
    ll sum = 0;
    int l = 0, r = -1;
    
    while ( r+1 < n )
    {
        r++;
        sum += a[r].first;
        
        while ( l <= r && sum > tr )
        {
            sum -= a[l].first;
            l++;
        }
        
        if ( l <= r && tl <= sum )
        {
            vector<int> ans;
            
            for ( int i=l; i<=r; i++ )
                ans.push_back( a[i].second );
            
            return ans;
        }
    }
    
    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...