# | Submission time | Handle | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
319151 | 2020-11-04T09:15:35 Z | alextodoran | Stations (IOI20_stations) | C++17 | Compilation error |
0 ms | 0 KB |
/** ____ ____ ____ ____ ____ ||a |||t |||o |||d |||o || ||__|||__|||__|||__|||__|| |/__\|/__\|/__\|/__\|/__\| **/ #include <bits/stdc++.h> #include "stations.h" using namespace std; const int N_MAX = 1002; vector <int> edges[N_MAX]; int minLabel[N_MAX], maxLabel[N_MAX]; int curr; int depth[N_MAX]; void dfs (int u, int parent = -1) { minLabel[u] = maxLabel[u] = ++curr; for(int v : edges[u]) if(v != parent) { depth[v] = depth[u] + 1; dfs(v); maxLabel[u] = max(maxLabel[u], maxLabel[v]); } } vector <int> label (int n, int k, vector <int> u, vector <int> v) { for(int i = 1; i < n; i++) { int a = u[i - 1]; int b = v[i - 1]; edges[a].push_back(b); edges[b].push_back(a); } dfs(1); vector <int> labels(n); for(int i = 1; i <= n; i++) if(depth[i] & 1) labels[i - 1] = minLabel[i]; else labels[i - 1] = maxLabel[i]; return labels; } int find_next_station (int s, int t, vector <int> c) { bool odd = true; for(int u : c) odd &= (c < s); int minL, maxL; if(odd == true) { minL = s; sort(c.begin(), c.end()); if((int)c.size() == 1) maxL = minL; else maxL = c.end()[-2]; if(minL <= t && t <= maxL) { for(int u : c) if(t <= u) return u; } else return c.back(); } else { maxL = s; sort(c.begin(), c.end()); reverse(c.begin(), c.end()); if((int)c.size() == 1) minL = maxL; else minL = c.end()[-2] - 1; if(minL <= t && t <= maxL) { for(int u : c) if(u <= t) return u; } else return c.back(); } }
Compilation message
stations.cpp: In function 'std::vector<int> label(int, int, std::vector<int>, std::vector<int>)': stations.cpp:47:5: warning: this 'for' clause does not guard... [-Wmisleading-indentation] 47 | for(int i = 1; i <= n; i++) | ^~~ stations.cpp:52:2: note: ...this statement, but the latter is misleadingly indented as if it were guarded by the 'for' 52 | return labels; | ^~~~~~ stations.cpp: In function 'int find_next_station(int, int, std::vector<int>)': stations.cpp:59:19: error: no match for 'operator<' (operand types are 'std::vector<int>' and 'int') 59 | odd &= (c < s); | ~ ^ ~ | | | | | int | std::vector<int> In file included from /usr/include/c++/9/regex:62, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:110, from stations.cpp:9: /usr/include/c++/9/bits/regex.h:1048:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, const std::__cxx11::sub_match<_BiIter>&)' 1048 | operator<(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs) | ^~~~~~~~ /usr/include/c++/9/bits/regex.h:1048:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/regex:62, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:110, from stations.cpp:9: /usr/include/c++/9/bits/regex.h:1124:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator<(std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&, const std::__cxx11::sub_match<_BiIter>&)' 1124 | operator<(const __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/regex.h:1124:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/regex:62, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:110, from stations.cpp:9: /usr/include/c++/9/bits/regex.h:1198:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)' 1198 | operator<(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/regex.h:1198:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/regex:62, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:110, from stations.cpp:9: /usr/include/c++/9/bits/regex.h:1272:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const typename std::iterator_traits<_Iter>::value_type*, const std::__cxx11::sub_match<_BiIter>&)' 1272 | operator<(typename iterator_traits<_Bi_iter>::value_type const* __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/regex.h:1272:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/regex:62, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:110, from stations.cpp:9: /usr/include/c++/9/bits/regex.h:1346:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)' 1346 | operator<(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/regex.h:1346:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/regex:62, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:110, from stations.cpp:9: /usr/include/c++/9/bits/regex.h:1421:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const typename std::iterator_traits<_Iter>::value_type&, const std::__cxx11::sub_match<_BiIter>&)' 1421 | operator<(typename iterator_traits<_Bi_iter>::value_type const& __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/regex.h:1421:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/regex:62, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:110, from stations.cpp:9: /usr/include/c++/9/bits/regex.h:1499:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const std::__cxx11::sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)' 1499 | operator<(const sub_match<_Bi_iter>& __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/regex.h:1499:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/stl_algobase.h:64, from /usr/include/c++/9/bits/specfun.h:45, from /usr/include/c++/9/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41, from stations.cpp:9: /usr/include/c++/9/bits/stl_pair.h:454:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator<(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)' 454 | operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) | ^~~~~~~~ /usr/include/c++/9/bits/stl_pair.h:454:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::pair<_T1, _T2>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/stl_algobase.h:67, from /usr/include/c++/9/bits/specfun.h:45, from /usr/include/c++/9/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41, from stations.cpp:9: /usr/include/c++/9/bits/stl_iterator.h:331:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)' 331 | operator<(const reverse_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/9/bits/stl_iterator.h:331:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::reverse_iterator<_Iterator>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/stl_algobase.h:67, from /usr/include/c++/9/bits/specfun.h:45, from /usr/include/c++/9/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41, from stations.cpp:9: /usr/include/c++/9/bits/stl_iterator.h:369:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)' 369 | operator<(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/9/bits/stl_iterator.h:369:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::reverse_iterator<_Iterator>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/stl_algobase.h:67, from /usr/include/c++/9/bits/specfun.h:45, from /usr/include/c++/9/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41, from stations.cpp:9: /usr/include/c++/9/bits/stl_iterator.h:1163:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)' 1163 | operator<(const move_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/9/bits/stl_iterator.h:1163:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::move_iterator<_IteratorL>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/stl_algobase.h:67, from /usr/include/c++/9/bits/specfun.h:45, from /usr/include/c++/9/cmath:1927, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:41, from stations.cpp:9: /usr/include/c++/9/bits/stl_iterator.h:1169:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)' 1169 | operator<(const move_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/9/bits/stl_iterator.h:1169:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::move_iterator<_IteratorL>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/basic_string.h:48, from /usr/include/c++/9/string:55, from /usr/include/c++/9/bits/locale_classes.h:40, from /usr/include/c++/9/bits/ios_base.h:41, from /usr/include/c++/9/ios:42, from /usr/include/c++/9/istream:38, from /usr/include/c++/9/sstream:38, from /usr/include/c++/9/complex:45, from /usr/include/c++/9/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54, from stations.cpp:9: /usr/include/c++/9/string_view:509:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)' 509 | operator< (basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/9/string_view:509:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'std::basic_string_view<_CharT, _Traits>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/basic_string.h:48, from /usr/include/c++/9/string:55, from /usr/include/c++/9/bits/locale_classes.h:40, from /usr/include/c++/9/bits/ios_base.h:41, from /usr/include/c++/9/ios:42, from /usr/include/c++/9/istream:38, from /usr/include/c++/9/sstream:38, from /usr/include/c++/9/complex:45, from /usr/include/c++/9/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54, from stations.cpp:9: /usr/include/c++/9/string_view:515:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(std::basic_string_view<_CharT, _Traits>, std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >)' 515 | operator< (basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/9/string_view:515:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'std::basic_string_view<_CharT, _Traits>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/basic_string.h:48, from /usr/include/c++/9/string:55, from /usr/include/c++/9/bits/locale_classes.h:40, from /usr/include/c++/9/bits/ios_base.h:41, from /usr/include/c++/9/ios:42, from /usr/include/c++/9/istream:38, from /usr/include/c++/9/sstream:38, from /usr/include/c++/9/complex:45, from /usr/include/c++/9/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54, from stations.cpp:9: /usr/include/c++/9/string_view:521:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(std::__detail::__idt<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)' 521 | operator< (__detail::__idt<basic_string_view<_CharT, _Traits>> __x, | ^~~~~~~~ /usr/include/c++/9/string_view:521:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: mismatched types 'std::basic_string_view<_CharT, _Traits>' and 'int' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/string:55, from /usr/include/c++/9/bits/locale_classes.h:40, from /usr/include/c++/9/bits/ios_base.h:41, from /usr/include/c++/9/ios:42, from /usr/include/c++/9/istream:38, from /usr/include/c++/9/sstream:38, from /usr/include/c++/9/complex:45, from /usr/include/c++/9/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54, from stations.cpp:9: /usr/include/c++/9/bits/basic_string.h:6226:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)' 6226 | operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/basic_string.h:6226:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/string:55, from /usr/include/c++/9/bits/locale_classes.h:40, from /usr/include/c++/9/bits/ios_base.h:41, from /usr/include/c++/9/ios:42, from /usr/include/c++/9/istream:38, from /usr/include/c++/9/sstream:38, from /usr/include/c++/9/complex:45, from /usr/include/c++/9/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54, from stations.cpp:9: /usr/include/c++/9/bits/basic_string.h:6239:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)' 6239 | operator<(const basic_string<_CharT, _Traits, _Alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/basic_string.h:6239:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: 'std::vector<int>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/string:55, from /usr/include/c++/9/bits/locale_classes.h:40, from /usr/include/c++/9/bits/ios_base.h:41, from /usr/include/c++/9/ios:42, from /usr/include/c++/9/istream:38, from /usr/include/c++/9/sstream:38, from /usr/include/c++/9/complex:45, from /usr/include/c++/9/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54, from stations.cpp:9: /usr/include/c++/9/bits/basic_string.h:6251:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator<(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)' 6251 | operator<(const _CharT* __lhs, | ^~~~~~~~ /usr/include/c++/9/bits/basic_string.h:6251:5: note: template argument deduction/substitution failed: stations.cpp:59:21: note: mismatched types 'const _CharT*' and 'std::vector<int>' 59 | odd &= (c < s); | ^ In file included from /usr/include/c++/9/bits/ios_base.h:46, from /usr/include/c++/9/ios:42, from /usr/include/c++/9/istream:38, from /usr/include/c++/9/sstream:38, from /usr/include/c++/9/complex:45, from /usr/include/c++/9/ccomplex:39, from /usr/include/x86_64-linux-gnu/c++/9/bits/stdc++.h:54, from stations.cpp:9: /usr/include/c++/9/system_error:208:3: note: candidate: 'bool std::operator<(const std::error_code&, const std::error_code&)' 208 | operator<(const error_code& __lhs, const error_code& __rhs) noexcept | ^~~~~~~~ /usr/include/c++/9/system_error:208:31: note: no known conversion for argument 1 from 'std::vector<int>' to 'const std::error_code&' 208 | operator<(const error_code& __lhs, const error_code& __rhs) noexcept | ~~~~~~~~~~~~~~~~~~^~~~~ /usr/include/c++/9/system_error:282:3: note: candidate: 'bool std::operator<(const std::error_condition&, const std::error_condition&)' 282 | operator<(const error_condition& __lhs, | ^~~~~~~~ /usr/include/c++/9/system_error:282:36: note: no known conversion for argument 1 from 'std::vector<int>' to 'const std::error_condition&' 282 | operator<(const error_condition& __lhs, | ~~~~~~~~~~~~~~~~~~~~~~~^~~~~ In file included from /usr/include/c++/9/tuple:39, from /usr/include/c++/9/functional:54, from /usr/include/c++/9/pstl/glue_algorithm_defs.h:13, from /usr/include/c++/9/algorithm:71,