Submission #599640

#TimeUsernameProblemLanguageResultExecution timeMemory
599640SummersDetecting Molecules (IOI16_molecules)C++14
100 / 100
49 ms5196 KiB
#include "molecules.h"
#include<bits/stdc++.h>
using namespace std;
struct str
{
    long long num,ind;
}a[1000000];
bool cmp(str a1, str a2)
{
    return a1.num<a2.num;
}
std::vector<int> find_subset(int l, int u, std::vector<int> w) {

    vector<int>v;

    long long le=0, i, ri=0, n=w.size(), sum=0;

    for(i=0;i<n;i++)
    {
        a[i].num=w[i];
        a[i].ind=i;
    }

    sort(a,a+n,cmp);

    sum+=a[0].num;
    if(sum>=l && sum<=u)
    {
        v.push_back(a[0].ind);
        return v;
    }

    while(ri<=n-1)
    {
        ri++;
        sum+=a[ri].num;

        if(sum>=l && sum<=u)
        {
            for(i=le;i<=ri;i++)v.push_back(a[i].ind);
            return v;
        }

        while(sum>u && le<=ri)
        {
            sum-=a[le].num;
            le++;
        }

        if(sum>=l && sum<=u)
        {
            for(i=le;i<=ri;i++)v.push_back(a[i].ind);
            return v;
        }
    }
    return v;

}
#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...