| # | Time | Username | Problem | Language | Result | Execution time | Memory |
|---|---|---|---|---|---|---|---|
| 1300985 | yusifm | Detecting Molecules (IOI16_molecules) | C++20 | 0 ms | 0 KiB |
//#pragma GCC optimize("O3")
#include <bits/stdc++.h>
#include "molecules.h"
using namespace std;
vector<int>find_subset(int left,int right,vector<int>nums)
{
vector<int>prefs(nums.size()+1,0),ans;
vector<pair<int,int>>indexes;
for(int i=0;i<nums.size();i++)
{
indexes.pb({nums[i],i});
}
sort(nums.begin(),nums.end()),sort(indexes.begin(),indexes.end());
for(int i=0;i<nums.size();i++)
{
prefs[i+1]=prefs[i]+nums[i];
}
for(int i=0;i<nums.size();i++)
{
for(int j=i;j<nums.size();j++)
{
if(prefs[j+1]-prefs[i]>=left && prefs[j+1]-prefs[i]<=right)
{
for(int k=i;k<=j;k++)
{
ans.push_back(indexes[k].second);
}
sort(ans.begin(),ans.end());
break;
}
}
if(ans.size()!=0)
{
break;
}
}
return ans;
}
