Submission #854986

#TimeUsernameProblemLanguageResultExecution timeMemory
854986thisistotallymyusernameWall (IOI14_wall)C++14
Compilation error
0 ms0 KiB
#include <iostream> using namespace std; const int N = 2000010, INF = 0x3f3f3f3f; int n, k; struct Node { int l, r; int minv, maxv; }tr[N * 4]; void lmax(int u, int h) { // Label max tr[u].minv = max(tr[u].minv, h); tr[u].maxv = max(tr[u].maxv, h); } void lmin(int u, int h) { // Label min tr[u].minv = min(tr[u].minv, h); tr[u].maxv = min(tr[u].maxv, h); } void pushup(int u) { tr[u].minv = min(tr[2 * u].minv, tr[2 * u + 1].minv); tr[u].maxv = min(tr[2 * u].maxv, tr[2 * u + 1].maxv); } void pushdown(int u) { lmin(2 * u, tr[u].minv); lmin(2 * u + 1, tr[u].minv); lmax(2 * u, tr[u].maxv); lmax(2 * u + 1, tr[u].maxv); tr[u].maxv = 0, tr[u].minv = INF; } void build(int u, int l, int r) { if (l == r) tr[u] = {l, r, INF, 0}; else { tr[u] = {l, r}; int mid = (l + r) >> 1; build(2 * u, l, mid), build(2 * u + 1, mid + 1, r); pushup(u); } } void update(int u, int l, int r, int h, int op) { if (tr[u].l >= l && tr[u].r <= r) { if (op == 1) { return lmax(u, h); } else { return lmin(u, h); } } pushdown(u); int mid = (tr[u].l + tr[u].r) >> 1; if (l <= mid) { update(2 * u, l, mid, h, op); } if (r > mid) { update(2 * u + 1, mid + 1, r, h, op); } } void query(int u, int l, int r) { if (l == r) { // Leaf printf("%d\n", tr[u].maxv); return; } int mid = (l + r) >> 1; pushdown(u); query(2 * u, l, mid); query(2 * u + 1, mid + 1, r); } int main() { scanf("%d%d", &n, &k); build(1, 1, n); for (int i = 1, op, l, r, h; i <= k; i++) { scanf("%d%d%d%d", &op, &l, &r, &h); update(1, l + 1, r + 1, h, op); } query(1, 1, n); return 0; }

Compilation message (stderr)

wall.cpp: In function 'int main()':
wall.cpp:76:10: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   76 |     scanf("%d%d", &n, &k);
      |     ~~~~~^~~~~~~~~~~~~~~~
wall.cpp:80:14: warning: ignoring return value of 'int scanf(const char*, ...)' declared with attribute 'warn_unused_result' [-Wunused-result]
   80 |         scanf("%d%d%d%d", &op, &l, &r, &h);
      |         ~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/bin/ld: /tmp/ccIQHtOd.o: in function `main':
grader.cpp:(.text.startup+0x0): multiple definition of `main'; /tmp/cc8Ko4Jh.o:wall.cpp:(.text.startup+0x0): first defined here
/usr/bin/ld: /tmp/ccIQHtOd.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