제출 #132064

#제출 시각아이디문제언어결과실행 시간메모리
132064Sorting벽 (IOI14_wall)C++14
컴파일 에러
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; const int N = 2e6 + 7; const int inf = 1e9; struct node{ int mn, mx; node(){ mx = -inf; mn = inf; }; node(int _mn, int _mx){ mn = _mn; mx = _mx; } friend void unite(node &prev, node after){ prev.mn = min(prev.mn, after.mn); prev.mx = max(prev.mx, after.mx); if(prev.mx > prev.mn){ if(after.mx == prev.mx){ prev.mn = prev.mx; } else{ prev.mx = prev.mn; } } } }; node st[4 * N]; void update(int idx, int l, int r, int sl, int sr, node val){ if(l != r){ unite(st[2 * idx], st[idx]); unite(st[2 * idx + 1], st[idx]); st[idx] = node(); } if(l > sr || r < sl){ return; } if(sl <= l && r <= sr){ unite(st[idx], val); return; } int mid = (l + r) / 2; update(2 * idx, l, mid, sl, sr, val); update(2 * idx + 1, mid + 1, r, sl, sr, val); } int query(int idx, int l, int r, int s){ if(l != r){ unite(st[2 * idx], st[idx]); unite(st[2 * idx + 1], st[idx]); st[idx] = node(); } if(l > s || r < s){ return node().mx; } if(l == r && l == s){ return st[idx].mx; } int mid = (l + r) >> 1; int lvalue = query(2 * idx, l, mid, s); int rvalue = query(2 * idx + 1, mid + 1, r, s); return max(lvalue, rvalue); } void buildWall(int n, int k, vector<int> op, vector<int> left, vector<int> right, vector<int> height, vector<int> &finalHeight){ for(int i = 0; i < k; i++){ node t; if(op[i] == 1){ t = node(height[i], inf); } else{ t = node(-inf, height[i]); } update(1, 0, n - 1, left[i], right[i], t); } for(int i = 0; i < n; i++){ finalHeight[i] = query(1, 0, n - 1, i); } }

컴파일 시 표준 에러 (stderr) 메시지

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