Submission #996996

#TimeUsernameProblemLanguageResultExecution timeMemory
996996IcelastDetecting Molecules (IOI16_molecules)C++17
9 / 100
1 ms348 KiB
#include "molecules.h"
#include <iostream>
#include <bits/stdc++.h>
#define ll long long
using namespace std;
const ll maxn = 2*1e5+5, INF = 4e18+9;

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