Submission #102035

#TimeUsernameProblemLanguageResultExecution timeMemory
102035joylintpDetecting Molecules (IOI16_molecules)C++17
100 / 100
85 ms7160 KiB
#include<bits/stdc++.h> #include"molecules.h" using namespace std; pair<long long, int> ms[200000] = {}; vector<int> find_subset(int l, int u, vector<int> w) { int amount = w.size(), i; for (i = 0; i < w.size(); i++) ms[i].second = i, ms[i].first = (long long)w[i]; sort(ms, ms + amount); long long now = 0; vector<int> ans; i = 0; while (now < l && i < amount) now += ms[i++].first; if (now < l) return ans; else if (now <= u) { for (int j = 0; j < i; j++) ans.push_back(ms[j].second); return ans; } else { int lans = 0, rans = i - 2; now -= ms[i - 1].first; if (now == 0) if (ms[0].first > u) return ans; else { ans.push_back(ms[0].second); return ans; } while (rans + 1 < amount && now < l) now = now - ms[lans].first + ms[rans + 1].first, rans++, lans++; if (now > u || now < l) return ans; else { for (int i = lans; i <= rans; i++) ans.push_back(ms[i].second); return ans; } } }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:11:19: warning: comparison between signed and unsigned integer expressions [-Wsign-compare]
     for (i = 0; i < w.size(); i++)
                 ~~^~~~~~~~~~
molecules.cpp:32:12: warning: suggest explicit braces to avoid ambiguous 'else' [-Wdangling-else]
         if (now == 0)
            ^
#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...