Submission #1133852

#TimeUsernameProblemLanguageResultExecution timeMemory
1133852sidripperTracks in the Snow (BOI13_tracks)C++20
Compilation error
0 ms0 KiB
#include <bits/stdc++.h> using namespace std; void dfs(int row, int col, int H, int W, vector<vector<char>>* grid, set<pair<int, int>>* visited, int* rabbit, int* fox) { if (row < 0 || col < 0 || col >= W || row >= H || (*grid)[row][col] == '.' || *visited->find({row, col}) != *visited->end()) { return; } *visited->insert({row, col}); if ((*grid)[row][col] == 'R') { *rabbit = 1; } if ((*grid)[row][col] == 'F') { *fox = 1; } dfs(row+1, col, H, W, grid, visited, rabbit, fox); dfs(row-1, col, H, W, grid, visited, rabbit, fox); dfs(row, col+1, H, W, grid, visited, rabbit, fox); dfs(row, col-1, H, W, grid, visited, rabbit, fox); } int main () { int H, W; cin >> H >> W; vector< vector<char> > grid; char val; for (int i=0; i<H; i++) { for (int j=0; j<W; j++) { cin >> val; grid[i].push_back(val); } } set<pair<int, int>> visited; int ans = 0; for (int row=0; row<H; row++) { for (int col=0; col<W; col++) { if (grid[row][col] == '.' || visited.find({row, col}) != visited.end()) { continue; } int rabbit = 0; int fox = 0; dfs(row, col, H, W, &grid, &visited, &rabbit, &fox); ans += rabbit; ans += fox; } } cout << ans; }

Compilation message (stderr)

tracks.cpp: In function 'void dfs(int, int, int, int, std::vector<std::vector<char> >*, std::set<std::pair<int, int> >*, int*, int*)':
tracks.cpp:12:9: error: no match for 'operator*' (operand type is 'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>')
   12 |         *visited->insert({row, col});
      |         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
In file included from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from tracks.cpp:1:
/usr/include/c++/11/complex:392:5: note: candidate: 'template<class _Tp> constexpr std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const std::complex<_Tp>&)'
  392 |     operator*(const complex<_Tp>& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/11/complex:392:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>' is not derived from 'const std::complex<_Tp>'
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from tracks.cpp:1:
/usr/include/c++/11/complex:401:5: note: candidate: 'template<class _Tp> constexpr std::complex<_Tp> std::operator*(const std::complex<_Tp>&, const _Tp&)'
  401 |     operator*(const complex<_Tp>& __x, const _Tp& __y)
      |     ^~~~~~~~
/usr/include/c++/11/complex:401:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>' is not derived from 'const std::complex<_Tp>'
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/c++/11/ccomplex:39,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:54,
                 from tracks.cpp:1:
/usr/include/c++/11/complex:410:5: note: candidate: 'template<class _Tp> constexpr std::complex<_Tp> std::operator*(const _Tp&, const std::complex<_Tp>&)'
  410 |     operator*(const _Tp& __x, const complex<_Tp>& __y)
      |     ^~~~~~~~
/usr/include/c++/11/complex:410:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   candidate expects 2 arguments, 1 provided
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/c++/11/valarray:603,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom1, class _Dom2> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Expr, _Dom1, _Dom2>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::_Expr<_Dom2, typename _Dom2::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/c++/11/valarray:603,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_Constant, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const typename _Dom::value_type&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/c++/11/valarray:603,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const typename _Dom::value_type&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   candidate expects 2 arguments, 1 provided
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/c++/11/valarray:603,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Expr, std::_ValArray, _Dom, typename _Dom::value_type>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::_Expr<_Dom1, typename _Dom1::value_type>&, const std::valarray<typename _Dom::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>' is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/c++/11/valarray:603,
                 from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/bits/valarray_after.h:407:5: note: candidate: 'template<class _Dom> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Expr, typename _Dom::value_type, _Dom>, typename std::__fun<std::__multiplies, typename _Dom1::value_type>::result_type> std::operator*(const std::valarray<typename _Dom::value_type>&, const std::_Expr<_Dom1, typename _Dom1::value_type>&)'
  407 |     _DEFINE_EXPR_BINARY_OPERATOR(*, struct std::__multiplies)
      |     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/bits/valarray_after.h:407:5: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   candidate expects 2 arguments, 1 provided
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/valarray:1188:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const std::valarray<_Tp>&, const std::valarray<_Tp>&)'
 1188 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/valarray:1188:1: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>' is not derived from 'const std::valarray<_Tp>'
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/valarray:1188:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_ValArray, std::_Constant, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const std::valarray<_Tp>&, const typename std::valarray<_Tp>::value_type&)'
 1188 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/valarray:1188:1: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   'std::pair<std::_Rb_tree_const_iterator<std::pair<int, int> >, bool>' is not derived from 'const std::valarray<_Tp>'
   12 |         *visited->insert({row, col});
      |                                    ^
In file included from /usr/include/x86_64-linux-gnu/c++/11/bits/stdc++.h:95,
                 from tracks.cpp:1:
/usr/include/c++/11/valarray:1188:1: note: candidate: 'template<class _Tp> std::_Expr<std::__detail::_BinClos<std::__multiplies, std::_Constant, std::_ValArray, _Tp, _Tp>, typename std::__fun<std::__multiplies, _Tp>::result_type> std::operator*(const typename std::valarray<_Tp>::value_type&, const std::valarray<_Tp>&)'
 1188 | _DEFINE_BINARY_OPERATOR(*, __multiplies)
      | ^~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/11/valarray:1188:1: note:   template argument deduction/substitution failed:
tracks.cpp:12:36: note:   candidate expects 2 arguments, 1 provided
   12 |         *visited->insert({row, col});
      |                                    ^