Submission #308812

#TimeUsernameProblemLanguageResultExecution timeMemory
308812caoashWall (IOI14_wall)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #include "wall.h" using namespace std; using ll = long long; using vi = vector<int>; using vl = vector<ll>; #define pb push_back #define rsz resize #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() using pi = pair<int,int>; #define f first #define s second #define mp make_pair const int MX = 2000005; const int MOD = (int) (1e9 + 7); const ll INF = (ll) 1e18; int upb[4 * MX], lowb[4 * MX]; void amx(int v, int x) { lowb[v] = max(lowb[v], x); upb[v] = max(upb[v], lowb[v]); } void amn(int v, int x) { upb[v] = min(upb[v], x); lowb[v] = min(lowb[v], upb[v]); } void prop(int v) { amx(2 * v + 1, lowb[v]); amx(2 * v + 2, lowb[v]); amn(2 * v + 1, upb[v]); amn(2 * v + 2, upb[v]); lowb[v] = 0; upb[v] = INT_MAX; } void update(int v, int l, int r, int ul, int ur, int t, int h) { if (l != r) prop(v); if (ul > r || ur < l) { return; } else if (ul <= l && ur >= r) { if (t) { amn(v, h); } else { amx(v, h); } if (l != r) prop(v); } else { int m = (l + r) / 2; update(2 * v + 1, l, m, ul, ur, t, h); update(2 * v + 2, m + 1, r, ul, ur, t, h); return; } } int query(int v, int l, int r, int i) { if (l != r) prop(v); if (l == r) { return lowb[v]; } else { int m = (l + r) / 2; if (m >= i) { return query(2 * v + 1, l, m, i); } else { return query(2 * v + 2, m + 1, r, i); } } } void buildWall(int n, int k, vi op, vi left, vi right, vi height, vi finalHeight) { for (int i = 0; i < 4 * n; i++) { lowb[i] = 0; upb[i] = INT_MAX; } for (int i = 0; i < k; i++) { cout << left[i] << " " << right[i] << " " << op[i] - 1 << " " << height[i] << '\n'; update(0, 0, n - 1, left[i], right[i], op[i] - 1, height[i]); } for (int i = 0; i < n; i++) finalHeight[i] = query(0, 0, n - 1, i); } /* int main(){ ios::sync_with_stdio(false); cin.tie(0); int n, k; cin >> n >> k; vi op(k), left(k), right(k), height(k); for (int i = 0; i < k; i++) { cin >> op[i] >> left[i] >> right[i] >> height[i]; } vi ret = buildWall(n, k, op, left, right, height); for (int i = 0; i < n; i++) { cout << ret[i] << " "; } cout << '\n'; } */

Compilation message (stderr)

/tmp/ccDC8ADR.o: In function `main':
grader.cpp:(.text.startup+0x118): undefined reference to `buildWall(int, int, int*, int*, int*, int*, int*)'
collect2: error: ld returned 1 exit status