Submission #1291465

#TimeUsernameProblemLanguageResultExecution timeMemory
1291465hssaan_arifDetecting Molecules (IOI16_molecules)C++20
100 / 100
79 ms12928 KiB
#include <vector> #include <set> #include <algorithm> #include "molecules.h" using namespace std; vector<int> find_subset(int l, int u, vector<int> w) { vector<pair<int, int>> v; for (int i = 0; i < w.size(); i++) v.push_back({w[i], i}); sort(v.rbegin(), v.rend()); long long sum = 0; int last = w.size() - 1; set<int> ans; for (int i = 0; i < v.size(); i++) { sum += v[i].first; ans.insert(v[i].second); if (sum >= l && sum <= u) return vector<int>(ans.begin(), ans.end()); if (sum > u) { int attempts = i + 1; while (attempts--) { sum -= v[i].first; ans.erase(v[i].second); sum += v[last].first; ans.insert(v[last].second); i--; last--; if (sum >= l && sum <= u) return vector<int>(ans.begin(), ans.end()); } return vector<int>(); } } return vector<int>(); }

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...