Submission #314237

#TimeUsernameProblemLanguageResultExecution timeMemory
314237Lemur95Detecting Molecules (IOI16_molecules)C++17
100 / 100
64 ms7788 KiB
#include <bits/stdc++.h> #pragma GCC optimize("Ofast") #define x first #define y second #define ld long double #define ll long long using namespace std; vector <int> find_subset(int l, int u, vector <int> w) { int n = w.size(); vector <pair <int, int>> v; vector <ll> s(n + 1); vector <int> ans; for(int i = 0; i < n; i++) v.push_back({w[i], i}); sort(v.begin(), v.end()); for(int i = 0; i < n; i++) s[i + 1] = s[i] + v[i].first; for(int i = 1; i <= n; i++) { int j = lower_bound(s.begin(), s.begin() + i, s[i] - u) - s.begin(); if(s[i] >= s[j] + l) { for(int k = j; k < i; k++) ans.push_back(v[k].second); break; } } return ans; } /*int main() { ios_base :: sync_with_stdio(false); cin.tie(0); cout.tie(0); int n, l, u, x; vector <int> v; cin >> n >> l >> u; for(int i = 1; i <= n; i++) cin >> x, v.push_back(x); vector <int> ans = find_subset(l, u, v); int sum = 0; for(auto &i : ans) sum += v[i]; if(sum == 0 || (l <= sum && sum <= u)) cout << "Accepted!"; else { cout << "Wrong answer, sum = " << sum << " and subset is "; for(auto &i : ans) cout << i << " "; } return 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...