Submission #807637

#TimeUsernameProblemLanguageResultExecution timeMemory
807637OAleksaDetecting Molecules (IOI16_molecules)C++14
Compilation error
0 ms0 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; } } vector<long long> p(n); p[0] = a[0].f; for(int i = 1;i < n;i++) p[i] = p[i - 1] + a[i].f; for(int i = 0;i < n;i++) { int l1 = i, r1 = n - 1, id = -1; while(l1 <= r1) { int mid = (l1 + r1) / 2; if(p[mid] - (i == 0 ? 0 : p[i - 1]) <= l) { id = mid; l1 = mid + 1; } else r1 = mid - 1; } if(id != -1) { vector<int> t; long long s = 0; for(int j = i;j <= id;j++) { t.push_back(a[j].s); s += a[j].f; } if(id != n - 1) { s += a[id + 1].f; t.push_back(a[id + 1].s); } if(s >= l && s <= u) return t; if(id == n - 1) break; long long x = s - u; //trazim prvi manji jednak od a[id] - x l1 = i, r1 = id; int u = -1; while(l1 <= r1) { int mid = (l1 + r1) / 2; if(a[mid].f <= a[id].f - x) { u = mid; l1 = mid + 1; } else r1 = mid - 1; } if(u == -1 || s - a[u].f < l && s - a[u].f > r) continue; for(int j = i;j <= id + 1;j++) { if(j == u) continue; ans.push_back(a[j].s); } return ans; } } 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; // }

Compilation message (stderr)

molecules.cpp: In function 'std::vector<int> find_subset(int, int, std::vector<int>)':
molecules.cpp:64:49: error: 'r' was not declared in this scope
   64 |    if(u == -1 || s - a[u].f < l && s - a[u].f > r)
      |                                                 ^