# | Time | Username | Problem | Language | Result | Execution time | Memory |
---|---|---|---|---|---|---|---|
812466 | andrei_boaca | Thousands Islands (IOI22_islands) | 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.
#include "islands.h"
#include <variant>
#include <vector>
//#include <bits/stdc++.h>
#include "grader.cpp"
using namespace std;
struct date
{
int nod,a,b;
};
vector<date> muchii[100005];
vector<int> c[1005][1005];
bool useedge[300005],usenod[300005];
int n,m;
bool good=0;
void dfs(int nod)
{
if(good)
return;
usenod[nod]=1;
for(date i:muchii[nod])
{
if(good)
return;
if(!useedge[i.a]&&!useedge[i.b])
{
if(usenod[i.nod])
{
good=1;
return;
}
else
{
useedge[i.a]=1;
useedge[i.b]=1;
dfs(i.nod);
useedge[i.a]=0;
useedge[i.b]=0;
}
}
}
}
std::variant<bool, std::vector<int>> find_journey(int N, int M, std::vector<int> U, std::vector<int> V)
{
n=N;
m=M;
for(int i=0;i<m;i++)
{
int a=U[i];
int b=V[i];
c[a][b].push_back(i);
}
if(n==2)
{
if(c[0][1].size()>=2&&c[1][0]>=1)
return true;
return false;
}
for(int a=0;a<n;a++)
for(int b=0;b<n;b++)
if(a!=b)
{
for(int i=0;i<c[a][b].size()&&i<c[b][a].size();i++)
{
int x=c[a][b][i];
int y=c[b][a][i];
muchii[a].push_back({b,x,y});
}
}
dfs(0);
return good;
}
Compilation message (stderr)
islands.cpp: In function 'std::variant<bool, std::vector<int, std::allocator<int> > > find_journey(int, int, std::vector<int>, std::vector<int>)': islands.cpp:57:38: error: no match for 'operator>=' (operand types are 'std::vector<int>' and 'int') 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ~~~~~~~^~~ | | | | | int | std::vector<int> In file included from /usr/include/c++/10/utility:70, from /usr/include/c++/10/variant:37, from islands.h:1, from islands.cpp:1: /usr/include/c++/10/bits/stl_pair.h:514:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator>=(const std::pair<_T1, _T2>&, const std::pair<_T1, _T2>&)' 514 | operator>=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_pair.h:514:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::pair<_T1, _T2>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from islands.h:1, from islands.cpp:1: /usr/include/c++/10/variant:1188:3: note: candidate: 'template<class ... _Types> constexpr bool std::operator>=(const std::variant<_Types ...>&, const std::variant<_Types ...>&)' 1188 | _VARIANT_RELATION_FUNCTION_TEMPLATE(>=, greater_equal) | ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ /usr/include/c++/10/variant:1188:3: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::variant<_Types ...>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from islands.h:1, from islands.cpp:1: /usr/include/c++/10/variant:1229:18: note: candidate: 'constexpr bool std::operator>=(std::monostate, std::monostate)' 1229 | constexpr bool operator>=(monostate, monostate) noexcept { return true; } | ^~~~~~~~ /usr/include/c++/10/variant:1229:29: note: no known conversion for argument 1 from 'std::vector<int>' to 'std::monostate' 1229 | constexpr bool operator>=(monostate, monostate) noexcept { return true; } | ^~~~~~~~~ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from islands.h:2, from islands.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:390:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator>=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_Iterator>&)' 390 | operator>=(const reverse_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:390:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::reverse_iterator<_Iterator>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from islands.h:2, from islands.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:428:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator>=(const std::reverse_iterator<_Iterator>&, const std::reverse_iterator<_IteratorR>&)' 428 | operator>=(const reverse_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:428:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::reverse_iterator<_Iterator>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from islands.h:2, from islands.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1478:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator>=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorR>&)' 1478 | operator>=(const move_iterator<_IteratorL>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1478:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::move_iterator<_IteratorL>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from islands.h:2, from islands.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1525:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator>=(const std::move_iterator<_IteratorL>&, const std::move_iterator<_IteratorL>&)' 1525 | operator>=(const move_iterator<_Iterator>& __x, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1525:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::move_iterator<_IteratorL>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/vector:67, from islands.h:2, from islands.cpp:1: /usr/include/c++/10/bits/stl_vector.h:1955:5: note: candidate: 'template<class _Tp, class _Alloc> bool std::operator>=(const std::vector<_Tp, _Alloc>&, const std::vector<_Tp, _Alloc>&)' 1955 | operator>=(const vector<_Tp, _Alloc>& __x, const vector<_Tp, _Alloc>& __y) | ^~~~~~~~ /usr/include/c++/10/bits/stl_vector.h:1955:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: mismatched types 'const std::vector<_Tp, _Alloc>' and 'int' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from grader.cpp:7, from islands.cpp:6: /usr/include/c++/10/string_view:601:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator>=(std::basic_string_view<_CharT, _Traits>, std::basic_string_view<_CharT, _Traits>)' 601 | operator>=(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:601:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'std::basic_string_view<_CharT, _Traits>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from grader.cpp:7, from islands.cpp:6: /usr/include/c++/10/string_view:607:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator>=(std::basic_string_view<_CharT, _Traits>, std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >)' 607 | operator>=(basic_string_view<_CharT, _Traits> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:607:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'std::basic_string_view<_CharT, _Traits>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/basic_string.h:48, from /usr/include/c++/10/string:55, from grader.cpp:7, from islands.cpp:6: /usr/include/c++/10/string_view:614:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator>=(std::__type_identity_t<std::basic_string_view<_CharT, _Traits> >, std::basic_string_view<_CharT, _Traits>)' 614 | operator>=(__type_identity_t<basic_string_view<_CharT, _Traits>> __x, | ^~~~~~~~ /usr/include/c++/10/string_view:614:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: mismatched types 'std::basic_string_view<_CharT, _Traits>' and 'int' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/string:55, from grader.cpp:7, from islands.cpp:6: /usr/include/c++/10/bits/basic_string.h:6381: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>&)' 6381 | operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/basic_string.h:6381:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/string:55, from grader.cpp:7, from islands.cpp:6: /usr/include/c++/10/bits/basic_string.h:6394:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator>=(const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&, const _CharT*)' 6394 | operator>=(const basic_string<_CharT, _Traits, _Alloc>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/basic_string.h:6394:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/string:55, from grader.cpp:7, from islands.cpp:6: /usr/include/c++/10/bits/basic_string.h:6406:5: note: candidate: 'template<class _CharT, class _Traits, class _Alloc> bool std::operator>=(const _CharT*, const std::__cxx11::basic_string<_CharT, _Traits, _Allocator>&)' 6406 | operator>=(const _CharT* __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/basic_string.h:6406:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: mismatched types 'const _CharT*' and 'std::vector<int>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from islands.h:2, from islands.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1141:5: note: candidate: 'template<class _IteratorL, class _IteratorR, class _Container> bool __gnu_cxx::operator>=(const __gnu_cxx::__normal_iterator<_IteratorL, _Container>&, const __gnu_cxx::__normal_iterator<_IteratorR, _Container>&)' 1141 | operator>=(const __normal_iterator<_IteratorL, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1141:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const __gnu_cxx::__normal_iterator<_IteratorL, _Container>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ In file included from /usr/include/c++/10/bits/stl_algobase.h:67, from /usr/include/c++/10/vector:60, from islands.h:2, from islands.cpp:1: /usr/include/c++/10/bits/stl_iterator.h:1149:5: note: candidate: 'template<class _Iterator, class _Container> bool __gnu_cxx::operator>=(const __gnu_cxx::__normal_iterator<_Iterator, _Container>&, const __gnu_cxx::__normal_iterator<_Iterator, _Container>&)' 1149 | operator>=(const __normal_iterator<_Iterator, _Container>& __lhs, | ^~~~~~~~ /usr/include/c++/10/bits/stl_iterator.h:1149:5: note: template argument deduction/substitution failed: islands.cpp:57:40: note: 'std::vector<int>' is not derived from 'const __gnu_cxx::__normal_iterator<_Iterator, _Container>' 57 | if(c[0][1].size()>=2&&c[1][0]>=1) | ^ islands.cpp:65:30: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 65 | for(int i=0;i<c[a][b].size()&&i<c[b][a].size();i++) | ~^~~~~~~~~~~~~~~ islands.cpp:65:48: warning: comparison of integer expressions of different signedness: 'int' and 'std::vector<int>::size_type' {aka 'long unsigned int'} [-Wsign-compare] 65 | for(int i=0;i<c[a][b].size()&&i<c[b][a].size();i++) | ~^~~~~~~~~~~~~~~