Submission #101297

#TimeUsernameProblemLanguageResultExecution timeMemory
101297chunghanDetecting Molecules (IOI16_molecules)C++17
Compilation error
0 ms0 KiB
#include<bits/stdc++.h>
//#include"molecules.h"

using namespace std;

typedef long long int lld;
typedef pair<int, int> pii;

vector<int> find_subset(int l, int u, vector<int> w) {
    vector<pii> p;
    vector<int> rst;
    vector<lld> S;
    int a = 0, b = 0, sum = 0;
    for (int i = 0; i < (int)w.size(); i++)
        p.push_back(pii(w[i], i));
    sort(p.begin(), p.end());
    S.push_back(p[0].first);
    for (int i = 1; i < (int)p.size(); i++)
        S.push_back(S[i-1] + p[i].first);
    while (1) {
        if (sum > u) sum -= S[a++];
        else if (b >= w.size()) break;
        else if (sum < l) sum += S[b++];
        else if ((sum >= l && sum <= u)) break;
    }
    if (b < w.size())
        for (int i = a+1; i <= b; i++)
            rst.push_back(p[i].second);
    return rst;
}

int main() {
    vector<int> w;
    w.push_back(15);
    w.push_back(16);
    w.push_back(17);
    w.push_back(18);
    vector<int> r = find_subset(10, 20, w);
    for (int i = 0; i < r.size(); i++) cout << r[i] << ' ';
    return 0;
}

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:22:20: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
         else if (b >= w.size()) break;
                  ~~^~~~~~~~~~~
molecules.cpp:26:11: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     if (b < w.size())
         ~~^~~~~~~~~~
molecules.cpp: In function 'int main()':
molecules.cpp:39:23: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (int i = 0; i < r.size(); i++) cout << r[i] << ' ';
                     ~~^~~~~~~~~~
/tmp/ccK7CjVU.o: In function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'
/tmp/ccUn9vij.o:molecules.cpp:(.text.startup+0x0): first defined here
collect2: error: ld returned 1 exit status