Submission #977412

#TimeUsernameProblemLanguageResultExecution timeMemory
977412sstojilkovic19Detecting Molecules (IOI16_molecules)C++14
69 / 100
1042 ms4688 KiB
#include "molecules.h"
#include <bits/stdc++.h>
using namespace std;

std::vector<int> find_subset(int l, int u, std::vector<int> w) {
    //return std::vector<int>(0);

    int leva=-1, desna=-1;
    vector<int>ans;
    //sort(w.begin(), w.end());
    int n = w.size();

    vector <pair<int, int>>w2(n);
    for(int i = 0; i<n; i++)w2[i]={w[i], i};
    sort(w2.begin(), w2.end());
    vector<long long>pref(n+5, 0);
    for(int i = 1; i<=n; i++)pref[i]=pref[i-1]+w2[i-1].first;

    for(int i = 1; i<=n; i++)
    {
        for(int j = 1; j<=i; j++)
        {
            long long s = pref[i]-pref[j-1];
            if(s>=l && s<=u)
            {
                desna = i;
                leva = j;
                break;
            }
        }
    }
   // cout<<leva<<" "<<desna<<"\n";

    if(leva==-1 && desna==-1)
        return vector<int>(0);
    else
    {
        for(int i = leva; i<=desna; i++)ans.push_back(w2[i-1].second);
        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...