Submission #1322734

#TimeUsernameProblemLanguageResultExecution timeMemory
1322734lucas110550Obstacles for a Llama (IOI25_obstacles)C++20
Compilation error
0 ms0 KiB
#include <vector> #include <algorithm> #include <iostream> #include <climits> using namespace std; struct SegTree { int n; vector<int> tree; void init(const vector<int>& data) { n = data.size(); tree.assign(2 * n, 0); for (int i = 0; i < n; i++) tree[n + i] = data[i]; for (int i = n - 1; i > 0; i--) tree[i] = max(tree[2 * i], tree[2 * i + 1]); } int query(int l, int r) { int res = -1; for (l += n, r += n; l <= r; l /= 2, r /= 2) { if (l % 2 == 1) res = max(res, tree[l++]); if (r % 2 == 0) res = max(res, tree[r--]); } return res; } }; void solve() { ios_base::sync_with_stdio(false); cin.tie(NULL); int N, M, Q; if (!(cin >> N >> M >> Q)) return; vector<int> T(N); for (int i = 0; i < N; i++) cin >> T[i]; vector<int> H(M); for (int i = 0; i < M; i++) cin >> H[i]; int min_H = 2e9; for (int h : H) min_H = min(min_H, h); int max_reachable_T = -1; for (int i = 0; i < N; i++) { if (T[i] <= min_H) { break; } max_reachable_T = max(max_reachable_T, T[i]); } SegTree st; st.init(H); // 4. 处理查询 for (int i = 0; i < Q; i++) { int L, R, S, D; cin >> L >> R >> S >> D; if (S > D) swap(S, D); int path_obstacle = st.query(S, D); if (max_reachable_T > path_obstacle) { cout << "1\n"; } else { cout << "0\n"; } } } int main() { solve(); return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccVpwc9h.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cchNrJvv.o:obstacles.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccVpwc9h.o: in function `main':
grader.cpp:(.text.startup+0x38f): undefined reference to `initialize(std::vector<int, std::allocator<int> >, std::vector<int, std::allocator<int> >)'
/usr/bin/ld: grader.cpp:(.text.startup+0x3e2): undefined reference to `can_reach(int, int, int, int)'
collect2: error: ld returned 1 exit status