Submission #1133849

#TimeUsernameProblemLanguageResultExecution timeMemory
1133849sidripperTracks 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<int>>* 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<int> > grid; int 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<int> >*, std::set<std::pair<int, int> >*, int*, int*)':
tracks.cpp:8:60: error: no match for 'operator*' (operand type is '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'})
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
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:8:74: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   candidate expects 2 arguments, 1 provided
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   candidate expects 2 arguments, 1 provided
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   candidate expects 2 arguments, 1 provided
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
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:8:74: note:   candidate expects 2 arguments, 1 provided
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                          ^
tracks.cpp:8:95: error: request for member 'find' in 'visited', which is of pointer type 'std::set<std::pair<int, int> >*' (maybe you meant to use '->' ?)
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                                               ^~~~
tracks.cpp:8:124: error: request for member 'end' in 'visited', which is of pointer type 'std::set<std::pair<int, int> >*' (maybe you meant to use '->' ?)
    8 |         if (row < 0 || col < 0 || col >= W || row >= H ||  *grid[row][col] == '.' || *visited.find({row, col}) != *visited.end()) {
      |                                                                                                                            ^~~
tracks.cpp:12:18: error: request for member 'insert' in 'visited', which is of pointer type 'std::set<std::pair<int, int> >*' (maybe you meant to use '->' ?)
   12 |         *visited.insert({row, col})
      |                  ^~~~~~
tracks.cpp:16:13: error: no match for 'operator*' (operand type is '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'})
   16 |         if (*grid[row][col] == 'F') {
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:16:27: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::complex<_Tp>'
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   candidate expects 2 arguments, 1 provided
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   candidate expects 2 arguments, 1 provided
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::_Expr<_Dom1, typename _Dom1::value_type>'
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   candidate expects 2 arguments, 1 provided
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   '__gnu_cxx::__alloc_traits<std::allocator<std::vector<int> >, std::vector<int> >::value_type' {aka 'std::vector<int>'} is not derived from 'const std::valarray<_Tp>'
   16 |         if (*grid[row][col] == 'F') {
      |                           ^
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:16:27: note:   candidate expects 2 arguments, 1 provided
   16 |         if (*grid[row][col] == 'F') {
      |                           ^