Submission #492528

#TimeUsernameProblemLanguageResultExecution timeMemory
492528nadorbWall (IOI14_wall)C++14
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; int mn[8000001], mx[8000001]; void update(int v, int ql, int qr, int vl, int vr, int val, int sgn){ if(ql > vr || qr < vl){ return; } if(vl <= ql && qr <= vr){ if(sgn == 2){ mn[v] = min(mn[v], val); mx[v] = min(mx[v], val); } else{ mn[v] = max(mx[v], val); mx[v] = max(mn[v], val); } return; } if(sgn == 2){ val = max(val, mn[v]); } else val = min(val, mx[v]); int mid = (vl + vr) / 2; update(2 * v, ql, min(qr, mid), vl, mid, val, sgn); update(2 * v + 1, max(ql, mid + 1), qr, mid + 1, vr, val, sgn); } int l[8000001], r[8000001]; void buildWall(int n, int k, int op[], int left[], int right[], int height, int finalHeight[]){ for(int i = 0; i <= 8000000; i++){ mx[i] = 100001; } for(int i = 0; i < k; i++){ update(1, left[i], right[i], 1, n, height, op[i]); } l[1] = 1, r[1] = n; for(int v = 1; v <= 8000000; v++){ if(2 * v <= 8000000){ mn[2 * v] = max(mn[v], mn[2 * v]); mx[2 * v] = min(mx[v], mx[2 * v]); } if(2 * v + 1 <= 8000000){ mn[2 * v + 1] = max(mn[v], mn[2 * v + 1]); mx[2 * v + 1] = min(mx[v], mx[2 * v + 1]); } if(v % 2 == 0){ l[v] = l[v / 2]; r[v] = (l[v / 2] + r[v / 2]) / 2; } else{ l[v] = (l[v / 2] + r[v / 2]) / 2 + 1; r[v] = r[v / 2]; } if(l[v] == r[v]){ finalHeight[l[v]] = mn[v]; } } }

Compilation message (stderr)

/usr/bin/ld: /tmp/ccUjM7iN.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