Submission #812466

#TimeUsernameProblemLanguageResultExecution timeMemory
812466andrei_boacaThousands Islands (IOI22_islands)C++17
Compilation error
0 ms0 KiB
#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++)
      |                                               ~^~~~~~~~~~~~~~~