Language: C++

#include<vector>
#include<iostream>
#include<queue>
#include<algorithm>
#include<numeric>
#include<string>
#include<set>
using namespace std;
#define INF 1000000008
typedef long long int ll;
typedef vector<vector<int,int>> Graph;

Graph g(300005);
vector<int> dist(300005);


void dik(int s){
  	for(auto x: dist) x = INF;
	dist[s] = 0;
  	priority_queue<pair<int,int>, vector<pair<int,int>>, greater<pair<int,int>>> q;
  	q.push(make_pair(0,s));
	set<int> st; st.insert(s);
  	while(!q.empty()){
      int d = q.top().first, id = q.top().second;
      q.pop();
      if(st.count(id) == 0){
        st.insert(id);
        for(auto av: g[id]){
            dist[av] = min(dist[av], dist[id]) + 1;
            q.push(make_pair(dist[av], av));
        }
      }               
    }
  	
  	return;
}



int main(){
  int n,m; cin >> n >> m;
  for(int i=0;i < m;i++){
    int a,b; cin >> a >> b;
    g[a-1].push_back(n+b-1);
    g[n+a-1].push_back(2*n+b-1);
    g[2*n+a-1].push_back(b-1);
  }
  int s,t; cin >> s >> t;
  dik(s-1);
  if(dist[t-1]==INF) cout << -1 << endl;
  else cout << dist[t-1] / 3 << endl;
  return 0;
}


Compiler output:
In file included from /usr/include/c++/14/vector:66,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_vector.h: In instantiation of 'struct std::_Vector_base<int, int>':
/usr/include/c++/14/bits/stl_vector.h:428:11:   required from 'class std::vector<int, int>'
  428 |     class vector : protected _Vector_base<_Tp, _Alloc>
      |           ^~~~~~
a.cc:28:26:   required from here
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/stl_vector.h:87:28: error: 'int' is not a class, struct, or union type
   87 |         rebind<_Tp>::other _Tp_alloc_type;
      |                            ^~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_vector.h:89:9: error: 'int' is not a class, struct, or union type
   89 |         pointer;
      |         ^~~~~~~
/usr/include/c++/14/bits/stl_vector.h: In instantiation of 'class std::vector<int, int>':
a.cc:28:26:   required from here
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/stl_vector.h:518:20: error: '_M_allocate' has not been declared in 'std::vector<int, int>::_Base'
  518 |       using _Base::_M_allocate;
      |                    ^~~~~~~~~~~
/usr/include/c++/14/bits/stl_vector.h:519:20: error: '_M_deallocate' has not been declared in 'std::vector<int, int>::_Base'
  519 |       using _Base::_M_deallocate;
      |                    ^~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_vector.h:521:20: error: '_M_get_Tp_allocator' has not been declared in 'std::vector<int, int>::_Base'
  521 |       using _Base::_M_get_Tp_allocator;
      |                    ^~~~~~~~~~~~~~~~~~~
a.cc: In function 'void dik(int)':
a.cc:28:26: error: no matching function for call to 'begin(std::vector<int, int>&)'
   28 |         for(auto av: g[id]){
      |                          ^
In file included from /usr/include/c++/14/bits/stl_vector.h:63:
/usr/include/c++/14/initializer_list:88:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::begin(initializer_list<_Tp>)'
   88 |     begin(initializer_list<_Tp> __ils) noexcept
      |     ^~~~~
/usr/include/c++/14/initializer_list:88:5: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   'std::vector<int, int>' is not derived from 'std::initializer_list<_Tp>'
   28 |         for(auto av: g[id]){
      |                          ^
In file included from /usr/include/c++/14/vector:69:
/usr/include/c++/14/bits/range_access.h:52:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(_Container&)'
   52 |     begin(_Container& __cont) -> decltype(__cont.begin())
      |     ^~~~~
/usr/include/c++/14/bits/range_access.h:52:5: note:   template argument deduction/substitution failed:
/usr/include/c++/14/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(_Container&) [with _Container = std::vector<int, int>]':
a.cc:28:26:   required from here
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:52:50: error: 'class std::vector<int, int>' has no member named 'begin'
   52 |     begin(_Container& __cont) -> decltype(__cont.begin())
      |                                           ~~~~~~~^~~~~
/usr/include/c++/14/bits/range_access.h:63:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(const _Container&)'
   63 |     begin(const _Container& __cont) -> decltype(__cont.begin())
      |     ^~~~~
/usr/include/c++/14/bits/range_access.h:63:5: note:   template argument deduction/substitution failed:
/usr/include/c++/14/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.begin()) std::begin(const _Container&) [with _Container = std::vector<int, int>]':
a.cc:28:26:   required from here
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:63:56: error: 'const class std::vector<int, int>' has no member named 'begin'
   63 |     begin(const _Container& __cont) -> decltype(__cont.begin())
      |                                                 ~~~~~~~^~~~~
/usr/include/c++/14/bits/range_access.h:95:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::begin(_Tp (&)[_Nm])'
   95 |     begin(_Tp (&__arr)[_Nm]) noexcept
      |     ^~~~~
/usr/include/c++/14/bits/range_access.h:95:5: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   mismatched types '_Tp [_Nm]' and 'std::vector<int, int>'
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:113:31: note: candidate: 'template<class _Tp> _Tp* std::begin(valarray<_Tp>&)'
  113 |   template<typename _Tp> _Tp* begin(valarray<_Tp>&) noexcept;
      |                               ^~~~~
/usr/include/c++/14/bits/range_access.h:113:31: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   'std::vector<int, int>' is not derived from 'std::valarray<_Tp>'
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:114:37: note: candidate: 'template<class _Tp> const _Tp* std::begin(const valarray<_Tp>&)'
  114 |   template<typename _Tp> const _Tp* begin(const valarray<_Tp>&) noexcept;
      |                                     ^~~~~
/usr/include/c++/14/bits/range_access.h:114:37: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   'std::vector<int, int>' is not derived from 'const std::valarray<_Tp>'
   28 |         for(auto av: g[id]){
      |                          ^
a.cc:28:26: error: no matching function for call to 'end(std::vector<int, int>&)'
/usr/include/c++/14/initializer_list:99:5: note: candidate: 'template<class _Tp> constexpr const _Tp* std::end(initializer_list<_Tp>)'
   99 |     end(initializer_list<_Tp> __ils) noexcept
      |     ^~~
/usr/include/c++/14/initializer_list:99:5: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   'std::vector<int, int>' is not derived from 'std::initializer_list<_Tp>'
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:74:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&)'
   74 |     end(_Container& __cont) -> decltype(__cont.end())
      |     ^~~
/usr/include/c++/14/bits/range_access.h:74:5: note:   template argument deduction/substitution failed:
/usr/include/c++/14/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.end()) std::end(_Container&) [with _Container = std::vector<int, int>]':
a.cc:28:26:   required from here
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:74:48: error: 'class std::vector<int, int>' has no member named 'end'
   74 |     end(_Container& __cont) -> decltype(__cont.end())
      |                                         ~~~~~~~^~~
/usr/include/c++/14/bits/range_access.h:85:5: note: candidate: 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&)'
   85 |     end(const _Container& __cont) -> decltype(__cont.end())
      |     ^~~
/usr/include/c++/14/bits/range_access.h:85:5: note:   template argument deduction/substitution failed:
/usr/include/c++/14/bits/range_access.h: In substitution of 'template<class _Container> constexpr decltype (__cont.end()) std::end(const _Container&) [with _Container = std::vector<int, int>]':
a.cc:28:26:   required from here
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:85:54: error: 'const class std::vector<int, int>' has no member named 'end'
   85 |     end(const _Container& __cont) -> decltype(__cont.end())
      |                                               ~~~~~~~^~~
/usr/include/c++/14/bits/range_access.h:106:5: note: candidate: 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::end(_Tp (&)[_Nm])'
  106 |     end(_Tp (&__arr)[_Nm]) noexcept
      |     ^~~
/usr/include/c++/14/bits/range_access.h:106:5: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   mismatched types '_Tp [_Nm]' and 'std::vector<int, int>'
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:115:31: note: candidate: 'template<class _Tp> _Tp* std::end(valarray<_Tp>&)'
  115 |   template<typename _Tp> _Tp* end(valarray<_Tp>&) noexcept;
      |                               ^~~
/usr/include/c++/14/bits/range_access.h:115:31: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   'std::vector<int, int>' is not derived from 'std::valarray<_Tp>'
   28 |         for(auto av: g[id]){
      |                          ^
/usr/include/c++/14/bits/range_access.h:116:37: note: candidate: 'template<class _Tp> const _Tp* std::end(const valarray<_Tp>&)'
  116 |   template<typename _Tp> const _Tp* end(const valarray<_Tp>&) noexcept;
      |                                     ^~~
/usr/include/c++/14/bits/range_access.h:116:37: note:   template argument deduction/substitution failed:
a.cc:28:26: note:   'std::vector<int, int>' is not derived from 'const std::valarray<_Tp>'
   28 |         for(auto av: g[id]){
      |                          ^
In file included from /usr/include/c++/14/bits/requires_hosted.h:31,
                 from /usr/include/c++/14/vector:60:
/usr/include/c++/14/bits/stl_vector.h: In instantiation of 'std::_Vector_base<_Tp, _Alloc>::_Vector_impl::_Vector_impl() [with _Tp = int; _Alloc = int]':
/usr/include/c++/14/bits/stl_construct.h:119:7:   required from 'void std::_Construct(_Tp*, _Args&& ...) [with _Tp = vector<int, int>; _Args = {}]'
  119 |       ::new((void*)__p) _Tp(std::forward<_Args>(__args)...);
      |       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/usr/include/c++/14/bits/stl_uninitialized.h:643:18:   required from 'static _ForwardIterator std::__uninitialized_default_n_1<_TrivialValueType>::__uninit_default_n(_ForwardIterator, _Size) [with _ForwardIterat