Submission #1326313

#TimeUsernameProblemLanguageResultExecution timeMemory
1326313aren_danceThe Ties That Guide Us (CEOI23_incursion)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> //#include "incursion.h" using namespace std; const int N=45001; /*int visit(int v){ cout<<"? "<<v<<'\n'; int c; cin>>c; return c; }*/ std::vector<int> mark(std::vector<std::pair<int, int>>f, int safe){ queue<pair<int,int>> q; vector<int> ans; q.push({safe,0}); vector<vector<int>> g(N); vector<bool> vis(N,0); int n=0; for(int i=0;i<f.size();++i){ g[f[i].first].push_back(f[i].second); g[f[i].second].push_back(f[i].first); n=max(n,f[i].first); n=max(n,f[i].second); } ans.resize(n); vis[1]=1; while(!q.empty()){ int x=q.front().first; int y=q.front().second; ans[x-1]=y; for(auto j:g[x]){ if(!vis[j]){ q.push({j,y+1}); vis[j]=1; } } q.pop(); } return ans; } vector<vector<int>> g(N); int sz[N]; void dfs(int v,int p){ int c=0; sz[v]=1; vector<pair<int,int>> r; for(auto i:g[v]){ if(i!=p){ dfs(i,v); sz[v]+=sz[i]; r.push_back({sz[i],c}); } ++c; } sort(r.begin(),r.end()); if(!r.empty()) swap(g[v][r[0].second],g[v][0]); } void locate(std::vector<std::pair<int, int>> f, int cur, int t){ if(t==0){ return; } for(int i=0;i<f.size();++i){ g[f[i].first].push_back(f[i].second); } for(int i=0;i<f.size();++i){ g[f[i].second].push_back(f[i].first); } dfs(cur,0); int nxt; for(int i=0;i<g[cur].size();++i){ int o=visit(g[cur][i]); if(o>t){ visit(cur); } else{ nxt=g[cur][i]; t=o; } } int pap=cur; cur=nxt; while(t!=0){ int nxt; for(int i=0;i<g[cur].size();++i){ if(g[cur][i]==pap){ continue; } int o=visit(g[cur][i]); if(o>t){ visit(cur); } else{ nxt=g[cur][i]; t=o; } } pap=cur; cur=nxt; } } /*int main(){ vector<int> u=mark({{1,2}, {2,3}},1); for(int i=0;i<u.size();++i){ cout<<u[i]<<' '; } locate({{1,2}, {2,3}},3,2); return 0; }*/

Compilation message (stderr)

incursion.cpp: In function 'void locate(std::vector<std::pair<int, int> >, int, int)':
incursion.cpp:71:20: error: no matching function for call to 'visit(__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type&)'
   71 |         int o=visit(g[cur][i]);
      |               ~~~~~^~~~~~~~~~~
In file included from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:80,
                 from incursion.cpp:1:
/usr/include/c++/13/variant:1851:5: note: candidate: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:   template argument deduction/substitution failed:
In file included from /usr/include/c++/13/bits/stl_pair.h:60,
                 from /usr/include/c++/13/bits/stl_algobase.h:64,
                 from /usr/include/c++/13/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/13/bits/stdc++.h:51:
/usr/include/c++/13/type_traits: In substitution of 'template<class _Fn, class ... _Args> using std::invoke_result_t = typename std::invoke_result::type [with _Fn = int&; _Args = {}]':
/usr/include/c++/13/variant:1122:11:   required by substitution of 'template<class _Visitor, class ... _Variants> using std::__detail::__variant::__visit_result_t = std::invoke_result_t<_Visitor, std::__detail::__variant::__get_t<0, _Variants, decltype (std::__detail::__variant::__as(declval<_Variants>())), typename std::variant_alternative<0, typename std::remove_reference<decltype (std::__detail::__variant::__as(declval<_Variants>()))>::type>::type>...> [with _Visitor = int&; _Variants = {}]'
/usr/include/c++/13/variant:1851:5:   required by substitution of 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...) [with _Visitor = int&; _Variants = {}]'
incursion.cpp:71:20:   required from here
/usr/include/c++/13/type_traits:3073:11: error: no type named 'type' in 'struct std::invoke_result<int&>'
 3073 |     using invoke_result_t = typename invoke_result<_Fn, _Args...>::type;
      |           ^~~~~~~~~~~~~~~
/usr/include/c++/13/variant:1891:5: note: candidate: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1891:5: note:   template argument deduction/substitution failed:
incursion.cpp:71:20: note:   couldn't deduce template parameter '_Res'
   71 |         int o=visit(g[cur][i]);
      |               ~~~~~^~~~~~~~~~~
incursion.cpp:73:18: error: no matching function for call to 'visit(int&)'
   73 |             visit(cur);
      |             ~~~~~^~~~~
/usr/include/c++/13/variant:1851:5: note: candidate: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/variant:1891:5: note: candidate: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1891:5: note:   template argument deduction/substitution failed:
incursion.cpp:73:18: note:   couldn't deduce template parameter '_Res'
   73 |             visit(cur);
      |             ~~~~~^~~~~
incursion.cpp:88:24: error: no matching function for call to 'visit(__gnu_cxx::__alloc_traits<std::allocator<int>, int>::value_type&)'
   88 |             int o=visit(g[cur][i]);
      |                   ~~~~~^~~~~~~~~~~
/usr/include/c++/13/variant:1851:5: note: candidate: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/variant:1891:5: note: candidate: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1891:5: note:   template argument deduction/substitution failed:
incursion.cpp:88:24: note:   couldn't deduce template parameter '_Res'
   88 |             int o=visit(g[cur][i]);
      |                   ~~~~~^~~~~~~~~~~
incursion.cpp:90:22: error: no matching function for call to 'visit(int&)'
   90 |                 visit(cur);
      |                 ~~~~~^~~~~
/usr/include/c++/13/variant:1851:5: note: candidate: 'template<class _Visitor, class ... _Variants> constexpr std::__detail::__variant::__visit_result_t<_Visitor, _Variants ...> std::visit(_Visitor&&, _Variants&& ...)'
 1851 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1851:5: note:   template argument deduction/substitution failed:
/usr/include/c++/13/variant:1891:5: note: candidate: 'template<class _Res, class _Visitor, class ... _Variants> constexpr _Res std::visit(_Visitor&&, _Variants&& ...)'
 1891 |     visit(_Visitor&& __visitor, _Variants&&... __variants)
      |     ^~~~~
/usr/include/c++/13/variant:1891:5: note:   template argument deduction/substitution failed:
incursion.cpp:90:22: note:   couldn't deduce template parameter '_Res'
   90 |                 visit(cur);
      |                 ~~~~~^~~~~