Submission #254427

#TimeUsernameProblemLanguageResultExecution timeMemory
254427T0p_Detecting Molecules (IOI16_molecules)C++14
69 / 100
50 ms6632 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

struct DATA
{
	int val, no;
	bool operator < (const DATA & o) const{
		return val < o.val;
	}
};

vector<DATA> v;
vector<int> ans;
deque<DATA> temp;

vector<int> find_subset(int l, int u, vector<int> w)
{
    int n = w.size();
    for(int i=0 ; i<n ; i++)
    	v.push_back({w[i], i});
    sort(v.begin(), v.end());
    int sum = 0;
    for(int i=0 ; i<n ; i++)
    {
    	sum += v[i].val;
    	temp.push_back(v[i]);
    	while(!temp.empty() && sum > u)
    	{
    		sum -= temp.front().val;
    		temp.pop_front();
    	}
    	if(l <= sum)
    	{
    		while(!temp.empty())
    		{
    			ans.push_back(temp.front().no);
    			temp.pop_front();
    		}
    		return ans;
    	}
    }
    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...