Submission #1325212

#TimeUsernameProblemLanguageResultExecution timeMemory
1325212yifanzzzDetecting Molecules (IOI16_molecules)C++20
Compilation error
0 ms0 KiB
#include <iostream>
#include <vector>
#include <algorithm>
using namespace std;
int find_subset(int l, int u, int W[], int n, int result[]){
    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 rv.size();
    } 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 rv.size();
        } else {
            return 0;
        }
    }
    return 0;
}
// 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
      |         ^~~~
/usr/bin/ld: /tmp/ccwu1D53.o: in function `main':
grader.cpp:(.text.startup+0x165): undefined reference to `find_subset(int, int, std::vector<int, std::allocator<int> >)'
collect2: error: ld returned 1 exit status