# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
1133852 | sidripper | Tracks in the Snow (BOI13_tracks) | C++20 | 컴파일 에러 | 0 ms | 0 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;
}
컴파일 시 표준 에러 (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}); | ^