# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
319151 | alextodoran | Stations (IOI20_stations) | C++17 | Compilation error | 0 ms | 0 KiB |
This submission is migrated from previous version of oj.uz, which used different machine for grading. This submission may have different result if resubmitted.
/**
____ ____ ____ ____ ____
||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 (stderr)
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,