Submission #883669

#TimeUsernameProblemLanguageResultExecution timeMemory
883669MalixDetecting Molecules (IOI16_molecules)C++14
19 / 100
1 ms500 KiB
#include "molecules.h"
#include <bits/stdc++.h>

using namespace std;

typedef long long ll;
typedef vector<int> vi;

#define REP(i,a,b) for(int i=a;i<b;i++)

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    int n=w.size();
    vector<pair<int,int>> arr(n);
    REP(i,0,n){
        arr[i].first=w[i];
        arr[i].second=i;
    }
    sort(arr.begin(),arr.end());
    int sum=0;
    int a=0,b=0;
    int a1=a;int b1=b;
    sum+=w[0];
    while(b<n){
        while(b+1<n&&sum<l){
            b++;
            sum+=arr[b].first;
        }
        while(a<b&&sum>u){
            sum-=arr[a].first;
            a++;
        }
        if(sum>=l&&sum<=u)break;
        if(b==n-1&&a+1==b)return std::vector<int>(0);
        if(b==b1&&a==a1)return std::vector<int>(0);
        a1=a;b1=b;
        
    }
    vi ans;
    REP(i,a,b+1)ans.push_back(arr[i].second);
    return ans;
    
}
#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...