Submission #1261629

#TimeUsernameProblemLanguageResultExecution timeMemory
1261629badge881Amusement 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)

# 2번째 컴파일 단계

Ioi.cpp: In lambda function:
Ioi.cpp:78:17: error: no match for call to '(std::function<void(int, int, int)>) (int&, int&, int, int&)'
   78 |             dfs3(i, x, pos + 1, id);
      |             ~~~~^~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/functional:59,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from Ioi.cpp:1:
/usr/include/c++/11/bits/std_function.h:586:7: note: candidate: '_Res std::function<_Res(_ArgTypes ...)>::operator()(_ArgTypes ...) const [with _Res = void; _ArgTypes = {int, int, int}]'
  586 |       operator()(_ArgTypes... __args) const
      |       ^~~~~~~~
/usr/include/c++/11/bits/std_function.h:586:7: note:   candidate expects 3 arguments, 4 provided
Ioi.cpp: In function 'long long int Ioi(int, int, int*, int*, int, int, int)':
Ioi.cpp:80:5: error: conversion from 'Ioi(int, int, int*, int*, int, int, int)::<lambda(int, int, int, int)>' to non-scalar type 'std::function<void(int, int, int)>' requested
   80 |     };
      |     ^
Ioi.cpp:122:13: error: no match for call to '(std::function<void(int, int, int)>) (int&, int, int, int&)'
  122 |         dfs3(i, 0, -1, i);
      |         ~~~~^~~~~~~~~~~~~
In file included from /usr/include/c++/11/functional:59,
                 from /usr/include/c++/11/pstl/glue_algorithm_defs.h:13,
                 from /usr/include/c++/11/algorithm:74,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:65,
                 from Ioi.cpp:1:
/usr/include/c++/11/bits/std_function.h:586:7: note: candidate: '_Res std::function<_Res(_ArgTypes ...)>::operator()(_ArgTypes ...) const [with _Res = void; _ArgTypes = {int, int, int}]'
  586 |       operator()(_ArgTypes... __args) const
      |       ^~~~~~~~
/usr/include/c++/11/bits/std_function.h:586:7: note:   candidate expects 3 arguments, 4 provided