제출 #1317180

#제출 시각아이디문제언어결과실행 시간메모리
1317180pobe비밀 (JOI14_secret)C++20
컴파일 에러
0 ms0 KiB
#include "secret.h" #include <bits/stdc++.h> #include <ext/pb_ds/assoc_container.hpp> #include <ext/pb_ds/tree_policy.hpp> #define int long long using namespace std; using namespace __gnu_pbds; using ordered_set = tree <int, null_type, less_equal <int>, rb_tree_tag, tree_order_statistics_node_update>; ostream &operator <<(ostream &out, vector <int> val) { for (auto v : val) { out << v << ' '; } return out; } vector <int> val; int n; class segment_tree { vector <vector <int>> prev; vector <vector <int>> suf; int n; void build(int num, int l, int r) { if (r - l <= 2) { return; } int med = (l + r) / 2; int cur = val[med]; prev[num].push_back(val[med]); for (int j = med + 1; j < r; ++j) { prev[num].push_back(Secret(cur, val[j])); cur = prev[num].back(); } cur = val[med - 1]; suf[num].push_back(cur); for (int j = med - 2; j >= l; --j) { suf[num].push_back(Secret(val[j], cur)); cur = suf[num].back(); } build(2 * num + 1, l, med); build(2 * num + 2, med, r); } int get(int num, int l, int r, int low, int high) { int med = (l + r) / 2; if (med >= low && med < high) { // cout << l << " " << r << " " << med << " " << low << " " << high << '\n'; int k1 = high - med - 1; int k2 = med - low - 1; // cout << k1 << " " << k2 << '\n'; if (k2 >= 0) { return Secret(suf[num][k2], prev[num][k1]); } else { return prev[num][k1]; } } if (med >= high) { return get(2 * num + 1, l, med, low, high); } else { return get(2 * num + 2, med, r, low, high); } } public: int get(int l, int r) { if (r - l == 1) { return val[l]; } else if (r - l == 2) { return Secret(val[l], val[l + 1]); } else { return get(0, 0, n, l, r); } } void init(int nn) { n = nn; prev.resize(4 * n); suf.resize(4 * n); build(0, 0, n); } }; segment_tree now; void Init(int nn, int A[]) { n = nn; val.resize(n); for (int i = 0; i < n; ++i) { val[i] = A[i]; } now.init(n); } int Query(int l, int r) { ++r; return now.get(l, r); }

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

/usr/bin/ld: /tmp/ccig5CGw.o: in function `main':
grader.cpp:(.text.startup+0x2c7): undefined reference to `Init(int, int*)'
/usr/bin/ld: grader.cpp:(.text.startup+0x314): undefined reference to `Query(int, int)'
collect2: error: ld returned 1 exit status