Submission #1236166

#TimeUsernameProblemLanguageResultExecution timeMemory
1236166ssitaramWall (IOI14_wall)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; typedef long long ll; typedef long double ld; void up(pair<int, int>& a, int b) { a.first = max(a.first, b); if (a.first > a.second) a.second = a.first; } void down(pair<int, int>& a, int b) { a.second = min(a.second, b); if (a.first > a.second) a.first = a.second; } struct segtree { int n; vector<pair<int, int>> range; segtree(int sz) { n = 1; while (n < sz) n *= 2; range.resize(2 * n - 1); } void prop(int node, int l, int r) { if (range[node] == make_pair(INT32_MIN, INT32_MAX)) { return; } if (r != l + 1) { up(range[node * 2 + 1], range[node].first); down(range[node * 2 + 1], range[node].second); up(range[node * 2 + 2], range[node].first); down(range[node * 2 + 2], range[node].second); range[node] = {INT32_MIN, INT32_MAX}; } } void upd(int node, int l, int r, int a, int b, int h, bool u) { prop(node, l, r); if (r <= a || l >= b) return; if (a <= l && r <= b) { if (u) up(range[node], h); else down(range[node], h); return; } int m = (l + r) / 2; upd(node * 2 + 1, l, m, a, b, h, u); upd(node * 2 + 2, m, r, a, b, h, u); } void upd(int a, int b, int h, bool u) { upd(0, 0, n, a, b + 1, h, u); } void get(int node, int l, int r, vector<int>& v) { prop(node, l, r); if (r == l + 1) { v[l] = range[node].first; return; } int m = (l + r) / 2; get(node * 2 + 1, l, m, v); get(node * 2 + 2, m, r, v); } void get(vector<int>& v) { get(0, 0, n, v); } }; int main() { ios::sync_with_stdio(false); cin.tie(nullptr); int n, q; cin >> n >> q; segtree st(n); while (q--) { int op, l, r, h; cin >> op >> l >> r >> h; st.upd(l, r, h, (op == 1)); } vector<int> v(n); st.get(v); for (int i = 0; i < n; ++i) { cout << v[i] << '\n'; } return 0; }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccmwxST0.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/ccxTGhk1.o:wall.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccmwxST0.o: in function `main':
grader.cpp:(.text.startup+0x133): undefined reference to `buildWall(int, int, int*, int*, int*, int*, int*)'
collect2: error: ld returned 1 exit status