Language: C++

#include <bits/stdc++.h>
using namespace std;
using ll = long long;
using ld = long double;
using P = pair<int, int>;
const int INF = 1e9;
#define print(x) cout << (x) << endl;
#define rep(i,m,n) for(ll i = (m); i < (n); i++)
const int MAX_V = 10000;

struct edge {
    int to;
    int cost;
};

// int d[MAX_V];
set<int> d[MAX_V];
vector<edge> G[MAX_V];
int V;

void dijkstra(int s) {
    priority_queue<P, vector<P>, greater<P>> que;
    fill(d, d+V, INF);
    d[s] = 0;
    que.push(P(0, s));
    while(!que.empty()) {
        P p = que.top();
        int v = p.second;
        que.pop();
        if (d[v] < p.first) {
            continue;
        }
        for (int i = 0; i < G[v].size(); i++) {
            edge e = G[v].at(i);
            // if (d[e.to] > d[v] + e.cost) {
            //     d[e.to] = d[v] + e.cost;
            //     que.push(P(d[e.to], e.to));
            // }
            for (int j = 0; j < d[v].size(); j++) {
                d[e.to].insert(d[v] + e.cost);
                que.push(P(d[e.to], e.to));
            }
        }
    }
}


int main() {
    cin.tie(0);
    ios::sync_with_stdio(false);
    cin >> V;
    int E;
    cin >> E;
    for (int i = 0; i < E; i++) {
        int a, b;
        cin >> a >> b;
        a--;
        b--;
        edge e = {b, 1};
        G[a].push_back(e);
        e = {a, 1};
        G[b].push_back(e);
    }
    int S;
    S--;
    cin >> S;
    int T;
    T--;
    cin >> T;
    dijkstra(S);
    for (auto itr = d[T].begin(); itr <= d[T].end(); itr++) {
        if (*itr % 3 == 0) {
            cout << *itr / 3 << endl;
            break;
        }
        if (itr == d[T].end()) {
            cout << -1 << endl;
        }
    }
}

Compiler output:
a.cc: In function 'void dijkstra(int)':
a.cc:24:12: error: no match for 'operator=' (operand types are 'std::set<int>' and 'int')
   24 |     d[s] = 0;
      |            ^
In file included from /usr/include/c++/14/set:63,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:158,
                 from a.cc:1:
/usr/include/c++/14/bits/stl_set.h:300:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>& std::set<_Key, _Compare, _Alloc>::operator=(const std::set<_Key, _Compare, _Alloc>&) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>]'
  300 |       operator=(const set&) = default;
      |       ^~~~~~~~
/usr/include/c++/14/bits/stl_set.h:300:17: note:   no known conversion for argument 1 from 'int' to 'const std::set<int>&'
  300 |       operator=(const set&) = default;
      |                 ^~~~~~~~~~
/usr/include/c++/14/bits/stl_set.h:304:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>& std::set<_Key, _Compare, _Alloc>::operator=(std::set<_Key, _Compare, _Alloc>&&) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>]'
  304 |       operator=(set&&) = default;
      |       ^~~~~~~~
/usr/include/c++/14/bits/stl_set.h:304:17: note:   no known conversion for argument 1 from 'int' to 'std::set<int>&&'
  304 |       operator=(set&&) = default;
      |                 ^~~~~
/usr/include/c++/14/bits/stl_set.h:318:7: note: candidate: 'std::set<_Key, _Compare, _Alloc>& std::set<_Key, _Compare, _Alloc>::operator=(std::initializer_list<_Tp>) [with _Key = int; _Compare = std::less<int>; _Alloc = std::allocator<int>]'
  318 |       operator=(initializer_list<value_type> __l)
      |       ^~~~~~~~
/usr/include/c++/14/bits/stl_set.h:318:46: note:   no known conversion for argument 1 from 'int' to 'std::initializer_list<int>'
  318 |       operator=(initializer_list<value_type> __l)
      |                 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~^~~
a.cc:30:18: error: no match for 'operator<' (operand types are 'std::set<int>' and 'int')
   30 |         if (d[v] < p.first) {
      |             ~~~~ ^ ~~~~~~~
      |                |     |
      |                |     int
      |                std::set<int>
In file included from /usr/include/c++/14/regex:68,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:181:
/usr/include/c++/14/bits/regex.h:1143:5: note: candidate: 'template<class _BiIter> bool std::__cxx11::operator<(const sub_match<_BiIter>&, const sub_match<_BiIter>&)'
 1143 |     operator<(const sub_match<_BiIter>& __lhs, const sub_match<_BiIter>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1143:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/regex.h:1224:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator<(__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&, const sub_match<_BiIter>&)'
 1224 |     operator<(const __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1224:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'std::__cxx11::__sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/regex.h:1317:5: note: candidate: 'template<class _Bi_iter, class _Ch_traits, class _Ch_alloc> bool std::__cxx11::operator<(const sub_match<_BiIter>&, __sub_match_string<_Bi_iter, _Ch_traits, _Ch_alloc>&)'
 1317 |     operator<(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1317:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/regex.h:1391:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const typename std::iterator_traits<_Iter>::value_type*, const sub_match<_BiIter>&)'
 1391 |     operator<(typename iterator_traits<_Bi_iter>::value_type const* __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1391:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/regex.h:1485:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type*)'
 1485 |     operator<(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1485:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/regex.h:1560:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const typename std::iterator_traits<_Iter>::value_type&, const sub_match<_BiIter>&)'
 1560 |     operator<(typename iterator_traits<_Bi_iter>::value_type const& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1560:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   mismatched types 'const std::__cxx11::sub_match<_BiIter>' and 'int'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/regex.h:1660:5: note: candidate: 'template<class _Bi_iter> bool std::__cxx11::operator<(const sub_match<_BiIter>&, const typename std::iterator_traits<_Iter>::value_type&)'
 1660 |     operator<(const sub_match<_Bi_iter>& __lhs,
      |     ^~~~~~~~
/usr/include/c++/14/bits/regex.h:1660:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::__cxx11::sub_match<_BiIter>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
In file included from /usr/include/c++/14/bits/stl_algobase.h:64,
                 from /usr/include/c++/14/algorithm:60,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:51:
/usr/include/c++/14/bits/stl_pair.h:1045:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator<(const pair<_T1, _T2>&, const pair<_T1, _T2>&)'
 1045 |     operator<(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_pair.h:1045:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::pair<_T1, _T2>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
In file included from /usr/include/c++/14/bits/stl_algobase.h:67:
/usr/include/c++/14/bits/stl_iterator.h:448:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)'
  448 |     operator<(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:448:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::reverse_iterator<_Iterator>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/stl_iterator.h:493:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)'
  493 |     operator<(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:493:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::reverse_iterator<_Iterator>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/stl_iterator.h:1694:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
 1694 |     operator<(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1694:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::move_iterator<_IteratorL>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/bits/stl_iterator.h:1760:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator<(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)'
 1760 |     operator<(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1760:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'const std::move_iterator<_IteratorL>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
In file included from /usr/include/c++/14/bits/basic_string.h:47,
                 from /usr/include/c++/14/string:54,
                 from /usr/include/c++/14/bitset:52,
                 from /usr/include/x86_64-linux-gnu/c++/14/bits/stdc++.h:52:
/usr/include/c++/14/string_view:673:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(basic_string_view<_CharT, _Traits>, basic_string_view<_CharT, _Traits>)'
  673 |     operator< (basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:673:5: note:   template argument deduction/substitution failed:
a.cc:30:22: note:   'std::set<int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   30 |         if (d[v] < p.first) {
      |                      ^~~~~
/usr/include/c++/14/string_view:680:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator<(basic_str