Submission #700963

#TimeUsernameProblemLanguageResultExecution timeMemory
700963abczzDetecting Molecules (IOI16_molecules)C++14
100 / 100
54 ms8652 KiB
#include <iostream> #include "molecules.h" #include <vector> #include <algorithm> #define ll long long using namespace std; std::vector<int> find_subset(int l, int r, std::vector<int> w) { ll n = w.size(), ps[200000]; vector <int> V; pair <ll, ll> a[200000]; for (int i=0; i<n; ++i) { a[i].first = w[i]; a[i].second = i; } sort(a, a+n, [](auto a, auto b) { return a.first < b.first; }); for (int i=0; i<n; ++i) { if (i == 0) ps[i] = a[i].first; else ps[i] = ps[i-1] + a[i].first; } for (int i=0; i<n; ++i) { if (ps[i] >= l && ps[i] <= r) { for (int j=0; j<=i; ++j) { V.push_back(a[j].second); } return V; } } int i=0, j=0; while (max(i, j) < n) { if (ps[i]-ps[j] >= l && ps[i]-ps[j] <= r) { for (int k=j+1; k<=i; ++k) { V.push_back(a[k].second); } return V; } else if (ps[i]-ps[j] > r) ++j; else ++i; } return std::vector<int>(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...