제출 #30488

#제출 시각아이디문제언어결과실행 시간메모리
30488bill_kondoDetecting Molecules (IOI16_molecules)C++14
100 / 100
66 ms6944 KiB
#include "molecules.h"
#include "bits/stdc++.h"
using namespace std;

typedef pair<int,int>pii;
const int maxn = 2e5 + 10;

bool mrk[maxn];

vector<int> find_subset(int l, int r, vector<int>w) {
    vector<int>ret;
    long long sum = 0;

    vector<pii> W;
    
    int n = (int)w.size();
    int j = 0;

    for(int i = 0; i < n; ++i)
    	W.push_back(pii(w[i],i));

    sort(W.begin(),W.end());

    for(int i = 0; i < n; ++i){
    	sum += W[i].first;
    	mrk[W[i].second] = true;

    	while(j < i && sum > r){
    		sum -= W[j].first;
    		mrk[W[j].second] = false;
    		++j;
    	}
    	
    	if(l <= sum && sum <= r) break;
    }

   	if(l <= sum && sum <= r){
   		for(int i = 0; i < n; ++i)
   			if(mrk[i])
   				ret.push_back(i);
   	}

    return ret;
}
#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...