Submission #1261628

#TimeUsernameProblemLanguageResultExecution timeMemory
1261628badge881Amusement Park (JOI17_amusement_park)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> #define MAXN 10007 using namespace std; #include "Joi.h" void Joi(int N, int M, int A[], int B[], long long X, int T) { int n, m; vector<int> v[MAXN]; const int bits = 60; int bit[MAXN]; bool vis[MAXN], trav[MAXN]; vector<int> tree[MAXN], special; int topsort[MAXN], sz; int num; function<void(int, int)> dfs = [&](int x, int p) { trav[x] = true; if (num == bits) return; num++; vis[x] = true; special.push_back(x); bit[x] = num - 1; if (p != 0) { tree[p].push_back(x); tree[x].push_back(p); } for (int i : v[x]) { if (trav[i]) continue; dfs(i, x); } } function<void(int, int, int)> dfs2 = [&](int x, int p, int root) { for (int i : tree[x]) { if (i == p) continue; dfs2(i, x, root); } topsort[sz] = bit[x]; sz++; } function<void(int, int, int, int)> dfs3 = [&](int x, int p, int pos, int id) { trav[x] = true; if (!vis[x]) bit[x] = topsort[pos % bits]; for (int i : v[x]) { if (trav[i] or vis[i]) continue; dfs3(i, x, pos + 1, id); } } n = N; m = M; for (int i = 0; i < m; i++) { A[i]++; B[i]++; v[A[i]].push_back(B[i]); v[B[i]].push_back(A[i]); A[i]--; B[i]--; } for (int i = 1; i <= n; i++) sort(v[i].begin(), v[i].end()); dfs(1, 0); for (int i : special) { for (int f = 1; f <= n; f++) trav[f] = false; sz = 0; dfs2(i, 0, i); dfs3(i, 0, -1, i); } for (int i = 0; i < n; i++) MessageBoard(i, ((1LL << bit[i + 1]) & X) > 0); return; }
#include <bits/stdc++.h> #define MAXN 10007 using namespace std; #include "Ioi.h" long long Ioi(int N, int M, int A[], int B[], int P, int V, int T) { int n, m, parent[MAXN]; vector<int> v[MAXN]; const int bits = 60; int bit[MAXN]; bool vis[MAXN], trav[MAXN]; vector<int> tree[MAXN], special; int topsort[MAXN], sz; int num; int sol[70]; bool used[70]; long long ans; function<void(int, int)> dfs = [&](int x, int p) -> void { parent[x] = p; trav[x] = true; if (num < bits) { num++; vis[x] = true; special.push_back(x); bit[x] = num - 1; if (p != 0) { tree[p].push_back(x); tree[x].push_back(p); } } for (int i : v[x]) { if (trav[i]) continue; dfs(i, x); } } function<void(int, int, int)> dfs2 = [&](int x, int p, int root) -> void { for (int i : tree[x]) { if (i == p) continue; dfs2(i, x, root); } topsort[sz] = bit[x]; sz++; } function<void(int, int, int)> dfs3 = [&](int x, int p, int pos, int id) -> void { trav[x] = true; if (!vis[x]) { bit[x] = topsort[pos % bits]; } for (int i : v[x]) { if (trav[i] or vis[i]) continue; dfs3(i, x, pos + 1, id); } } function<void(int, int)> dfs4 = [&](int x, int curr) -> void { used[bit[x]] = true; sol[bit[x]] = curr; for (int i : tree[x]) { if (!used[bit[i]]) { dfs4(i, Move(i - 1)); Move(x - 1); } } } n = N; m = M; for (int i = 0; i < m; i++) { A[i]++; B[i]++; v[A[i]].push_back(B[i]); v[B[i]].push_back(A[i]); A[i]--; B[i]--; } for (int i = 1; i <= n; i++) sort(v[i].begin(), v[i].end()); dfs(1, 0); for (int i : special) { for (int f = 1; f <= n; f++) trav[f] = false; sz = 0; dfs2(i, 0, i); dfs3(i, 0, -1, i); } P++; used[bit[P]] = true; sol[bit[P]] = V; for (int i = 1; i <= bits - 1 and !vis[P]; i++) { P = parent[P]; V = Move(P - 1); if (vis[P]) break; used[bit[P]] = true; sol[bit[P]] = V; } if (vis[P]) dfs4(P, V); for (int i = 0; i < bits; i++) ans += (long long)(1LL << i) * sol[i]; return ans; }

Compilation message (stderr)

# 1번째 컴파일 단계

Joi.cpp: In function 'void Joi(int, int, int*, int*, long long int, int)':
Joi.cpp:46:5: error: expected ',' or ';' before 'function'
   46 |     function<void(int, int, int)>
      |     ^~~~~~~~
Joi.cpp:75:5: error: expected ',' or ';' before 'n'
   75 |     n = N;
      |     ^
Joi.cpp:98:9: error: 'dfs2' was not declared in this scope; did you mean 'dfs3'?
   98 |         dfs2(i, 0, i);
      |         ^~~~
      |         dfs3