Submission #807600

#TimeUsernameProblemLanguageResultExecution timeMemory
807600OAleksaDetecting Molecules (IOI16_molecules)C++14
9 / 100
1 ms212 KiB
#include <bits/stdc++.h> #include "molecules.h" #define f first #define s second using namespace std; vector<int> find_subset(int l, int u, vector<int> w) { vector<pair<int, int>> a; int n = w.size(); for(int i = 0;i < n;i++) a.push_back({w[i], i}); sort(a.begin(), a.end()); vector<int> ans; for(int i = 0;i < n;i++) { if(a[i].f >= l && a[i].f <= u) { ans.push_back(a[i].s); return ans; } } long long sm = 0; for(int i = 0;i < n;i++) { sm += a[i].f; if(sm >= l && sm <= u) { for(int j = 0;j <= i;j++) ans.push_back(a[j].s); return ans; } else if(sm > u) { sm -= a[i].f; int p = -1; for(int j = 0;j < i;j++) { if(sm - a[j].f + a[i].f >= l && sm - a[j].f + a[i].f <= u) { p = j; break; } } if(p != -1) { for(int j = 0;j <= i;j++) { if(j == p) continue; ans.push_back(a[j].s); } } break; } } return ans; } // int main() // { // ios_base::sync_with_stdio(false); // cin.tie(0); // cout.tie(0); // int tt = 1; // //cin >> tt; // while(tt--) { // int l, r; // cin >> l >> r; // int n; // cin >> n; // vector<int> x(n); // for(int i = 0;i < n;i++) // cin >> x[i]; // vector<int> res = find_subset(l, r, x); // for(auto x : res) // cout << x << " "; // cout << endl; // } // 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...