Submission #1325214

#TimeUsernameProblemLanguageResultExecution timeMemory
1325214yifanzzzDetecting Molecules (IOI16_molecules)C++20
0 / 100
1 ms332 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int n;
vector<int> result(10001,0);
vector<int> emp;
vector<int> find_subset(int l, int u, vector<int> W){
    int n=W.size();
    vector<pair<int, int> >w;
    vector<int> rv;
    for(int i=0; i<n; i++) {
        w.push_back(make_pair(W[i],i));
    }
    sort(w.begin(),w.end());
    int sum=0;
    int p=0;
    while(sum<l && p<=(w.size()-1)) {
        sum+=w[p].first;
        p++;
    }
    if(sum<=u && sum>=l) {
        for(int i=0; i<p; i++) rv.push_back(w[i].second);
        for(int i=0; i<rv.size();i++) {
            result[i]=rv[i];
            // cout << result[i] << " ";
        }
        // cout << endl;
        return result;
    } else {
        sum-=w[p].first;
        p-=2;
        int p2=w.size()-1;
        //6 7 8 8
        while(sum<l && p2>=0 && p>=0) {
            // cout << p << " " << p2 << " " << sum << endl;
            sum+=w[p2].first;
            sum-=w[p].first;
            p2--;
            p--;
        }
        p2++;
        // cout << p << " " << p2 << endl;
        if(sum>=l && sum<=u) {
            for(int i=0; i<=p; i++) rv.push_back(w[i].second);
            for(int i=p2; i<n; i++) rv.push_back(w[i].second);
            for(int i=0; i<rv.size();i++) {
                result[i]=rv[i];
                // cout << result[i] << " ";
            }
            // cout << endl;
            return result;
        } else {
            return emp;
        }
    }
    return emp;
}
// int main(){
//     int W[4]={5,5,6,6};
//     int W2[4]={15,17,16,18};
//     int W3[4]={6,8,8,7};
//     cout << find_subset(15, 17, W3, 4, W);
// }

Compilation message (stderr)

molecules.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
molecules_c.h:1:9: warning: #pragma once in main file
    1 | #pragma once
      |         ^~~~
#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...