Submission #415681

#TimeUsernameProblemLanguageResultExecution timeMemory
415681LastRonin자동 인형 (IOI18_doll)C++14
Compilation error
0 ms0 KiB
#pragma GCC optimize("O3") #include <bits/stdc++.h> #include "doll.h" #define ll long long #define pill pair<ll, ll> #define ex exit(0) #define f first #define s second #define mp make_pair #define pb push_back using namespace std; const ll N = 8e5 + 100; ll n; vector<int> g[N]; ll cur = 0; ll L[N], R[N]; bool leave[N]; bool sost[N]; void build(int v, int l, int r) { if(l == r) { leave[v] = 1; return; } ll m = (l + r) >> 1ll; if(l != m) L[v] = cur++, build(L[v], l, m); if(m + 1 != r) R[v] = cur++, build(R[v], m + 1, r); } void spusk(int v, int p, int l, int r) { int m = (l + r) >> 1ll; if(sost[v] == 0) { sost[v] = 1; if(l == m) { L[v] = p; return; } else { spusk(L[v], p, l, m); } } else { sost[v] = 0; if(m + 1== r) { R[v] = p; return; } else { spusk(R[v], p, m + 1, r); } } } void create_circuit(int m, vector<int> a) { n = a.size(); vector<int> C(m + 1), X, Y; C[0] = -1; for(int i = 1; i <= m; i++)C[i] = -1; ll z = __lg(n) + 1; build(0, 1, (1<<z)); ll dl = (1<<z) - (n + 1); while(dl--)spusk(0, -1); for(int i = 0; i < n; i++) { spusk(0, a[i]); } spusk(0, 0); for(int i = 0; i < cur; i++) { if(leave[i]) { X.pb(L[i]), X.pb(R[i]); } else { X.pb(-(L[i] + 1)), Y.pb(-(R[i] + 1)); } } /* for(auto u : C) cout << u << " "; cout << '\n'; for(int i = 0; i < cur; i++) cout << X[i] << " " << Y[i] << '\n'; */ answer(C, X, Y); } /* int main() { ll k, kk; cin >> k >> kk; vector<int> p; for(int i = 0, a; i < kk; i++) cin >> a, p.pb(a); create_circuit(k, p); } */

Compilation message (stderr)

doll.cpp: In function 'void create_circuit(int, std::vector<int>)':
doll.cpp:66:24: error: too few arguments to function 'void spusk(int, int, int, int)'
   66 |  while(dl--)spusk(0, -1);
      |                        ^
doll.cpp:34:6: note: declared here
   34 | void spusk(int v, int p, int l, int r) {
      |      ^~~~~
doll.cpp:68:16: error: too few arguments to function 'void spusk(int, int, int, int)'
   68 |   spusk(0, a[i]);
      |                ^
doll.cpp:34:6: note: declared here
   34 | void spusk(int v, int p, int l, int r) {
      |      ^~~~~
doll.cpp:70:12: error: too few arguments to function 'void spusk(int, int, int, int)'
   70 |  spusk(0, 0);
      |            ^
doll.cpp:34:6: note: declared here
   34 | void spusk(int v, int p, int l, int r) {
      |      ^~~~~