Submission #676861

#TimeUsernameProblemLanguageResultExecution timeMemory
676861coding_snorlaxDetecting Molecules (IOI16_molecules)C++14
100 / 100
68 ms6208 KiB
#include<bits/stdc++.h>
#include "molecules.h"
using namespace std;
vector<int> answer;
vector<pair<int,int>> s;
vector<int> find_subset(int l,int u,vector<int> w){
    int num=0;
    for(int i:w){
        s.push_back(make_pair(i,num));
        num++;
    }
    sort(s.begin(),s.end());
    sort(w.begin(),w.end());
    answer.clear();
    long long int Min=0;
    long long int Max=0;
    int flag=-1;
    for(int i=0 ; i<(int)w.size();i++){
        Min += w[i];
        Max += w[(int)w.size()-i-1];
        //cout<<Min << " "<<Max<<"\n";
        if (Min <= u && Max >= l){
            flag = i;
            break;
        }
    }
    if(flag == -1) return answer;
    int Count = 0;

    while(!(Min >= l && Min<=u)){
        Min -= w[flag];
        Min += w[(int)w.size()-1-Count];
        answer.push_back(s[(int)w.size()-1-Count].second);
        flag --;
        Count ++;
    }
    for(int i=0;i<=flag;i++){
        answer.push_back(s[i].second);
    }
    return answer;
}
#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...