Submission #102061

#TimeUsernameProblemLanguageResultExecution timeMemory
102061daniel920712Detecting Molecules (IOI16_molecules)C++14
100 / 100
76 ms5252 KiB
#include <iostream>
#include <stdio.h>
#include <stdlib.h>
#include <algorithm>
#include <vector>
#include "molecules.h"

using namespace std;
struct A
{
    long long con;
    int where;
}all[200005];
bool F(A a,A b)
{
    return a.con<b.con;
}
vector < int > find_subset(int l, int u, vector < int > w)
{
    int N=w.size(),i;
    long long t=0;
    long long X=(long long) l;
    long long Y=(long long) u;
    int x=0,y=0;
    for(i=0;i<N;i++)
    {
        all[i].con=(long long) w[i];
        all[i].where=i;
    }
    sort(all,all+N,F);
    vector < int > ans;
    for(i=0;i<N;i++)
    {
        if(all[i].con>u) break;
        t+=all[i].con;
        while(t>Y)
        {
            t-=all[x++].con;
        }

        if(X<=t&&t<=Y)
        {
            //printf("%d %d %d %d\n",i,t,x,y);
            for(i=x;i<=y;i++)
            {
                //printf("a:%d\n",i);
                ans.push_back(all[i].where);

            }
            return ans;
        }


        y++;
    }


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