Language: C++

#include <iostream>
#include <queue>
#include <vector>
#include <set>
#include <unordered_set>

using namespace std;

const int INF = 1000000007;

class V
{
public:
	V(){dj=INF;visited=false;}
	unordered_set<int> graph;
	unordered_set<int> graph2;
	int cost;
	int dj;
	int num;
	bool visited;
};

V v[5000];

int main()
{
	int n, k;
	cin >> n >> k;
	v[0].dj=0;
	for(int i=0;i<n;i++)
		cin >> v[i].cost >> v[i].num;
	for(int i=0;i<k;i++)
	{
		int a, b;
		cin >> a >> b;
		v[a-1].graph.insert(b-1);
		v[b-1].graph.insert(a-1);
	}
	
	for(int i=0;i<n;i++)
	{
		queue< pair<int, int> > q;
		q.push(pair<int, int>(i, v[i].num));
		while(!q.empty())
		{
			pair<int, int> p = q.front();q.pop();
			v[i].graph2.insert(p.first);
			if(p.second)
			{
				for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
				{
					q.push(pair<int, int>((*it), p.second-1));
				}
			}
		}
	}
	
	int now=0;
	do
	{
		int mini = INF;
		int nextSearch = -1;
		v[now].visited=true;
		for(int i=0;i<n;i++)
		{
			if((!v[i].visited)&&(v[now].graph2.find(i)!=v[now].graph2.end())&&(v[now].dj+v[now].cost<v[i].dj))
			{
				int n=v[now].dj+v[now].cost;
				v[i].dj=n;
			}
			if((!v[i].visited)&&(v[i].dj<mini))
			{
				mini = v[i].dj;
				nextSearch=i;
			}
		}
		now = nextSearch;
	}while (now != -1);
	cout << v[n-1].dj << endl;
	return 0;
}

Compiler output:
a.cc: In function 'int main()':
a.cc:50:81: error: conversion from 'std::unordered_set<int>::iterator' {aka 'std::__detail::_Insert_base<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::iterator'} to non-scalar type 'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} requested
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                           ~~~~~~~~~~~~~~~~~~~~~~^~
a.cc:50:86: error: no match for 'operator!=' (operand types are 'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} and 'std::unordered_set<int>::iterator' {aka 'std::__detail::_Insert_base<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::iterator'})
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                    ~~^~~~~~~~~~~~~~~~~~~~~~~~
      |                                                                                    |                       |
      |                                                                                    |                       std::unordered_set<int>::iterator {aka std::__detail::_Insert_base<int, int, std::allocator<int>, std::__detail::_Identity, std::equal_to<int>, std::hash<int>, std::__detail::_Mod_range_hashing, std::__detail::_Default_ranged_hash, std::__detail::_Prime_rehash_policy, std::__detail::_Hashtable_traits<false, true, true> >::iterator}
      |                                                                                    std::set<int>::iterator {aka std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator}
In file included from /usr/include/c++/14/iosfwd:42,
                 from /usr/include/c++/14/ios:40,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/postypes.h:197:5: note: candidate: 'template<class _StateT> bool std::operator!=(const fpos<_StateT>&, const fpos<_StateT>&)'
  197 |     operator!=(const fpos<_StateT>& __lhs, const fpos<_StateT>& __rhs)
      |     ^~~~~~~~
/usr/include/c++/14/bits/postypes.h:197:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} is not derived from 'const std::fpos<_StateT>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
In file included from /usr/include/c++/14/string:43,
                 from /usr/include/c++/14/bits/locale_classes.h:40,
                 from /usr/include/c++/14/bits/ios_base.h:41,
                 from /usr/include/c++/14/ios:44:
/usr/include/c++/14/bits/allocator.h:243:5: note: candidate: 'template<class _T1, class _T2> bool std::operator!=(const allocator<_CharT>&, const allocator<_T2>&)'
  243 |     operator!=(const allocator<_T1>&, const allocator<_T2>&)
      |     ^~~~~~~~
/usr/include/c++/14/bits/allocator.h:243:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} is not derived from 'const std::allocator<_CharT>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
In file included from /usr/include/c++/14/string:48:
/usr/include/c++/14/bits/stl_iterator.h:455:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const reverse_iterator<_Iterator>&, const reverse_iterator<_Iterator>&)'
  455 |     operator!=(const reverse_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:455:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} is not derived from 'const std::reverse_iterator<_Iterator>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
/usr/include/c++/14/bits/stl_iterator.h:500:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const reverse_iterator<_Iterator>&, const reverse_iterator<_IteratorR>&)'
  500 |     operator!=(const reverse_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:500:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} is not derived from 'const std::reverse_iterator<_Iterator>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
/usr/include/c++/14/bits/stl_iterator.h:1686:5: note: candidate: 'template<class _IteratorL, class _IteratorR> constexpr bool std::operator!=(const move_iterator<_IteratorL>&, const move_iterator<_IteratorR>&)'
 1686 |     operator!=(const move_iterator<_IteratorL>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1686:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} is not derived from 'const std::move_iterator<_IteratorL>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
/usr/include/c++/14/bits/stl_iterator.h:1753:5: note: candidate: 'template<class _Iterator> constexpr bool std::operator!=(const move_iterator<_IteratorL>&, const move_iterator<_IteratorL>&)'
 1753 |     operator!=(const move_iterator<_Iterator>& __x,
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_iterator.h:1753:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} is not derived from 'const std::move_iterator<_IteratorL>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
In file included from /usr/include/c++/14/bits/stl_algobase.h:64,
                 from /usr/include/c++/14/string:51:
/usr/include/c++/14/bits/stl_pair.h:1052:5: note: candidate: 'template<class _T1, class _T2> constexpr bool std::operator!=(const pair<_T1, _T2>&, const pair<_T1, _T2>&)'
 1052 |     operator!=(const pair<_T1, _T2>& __x, const pair<_T1, _T2>& __y)
      |     ^~~~~~~~
/usr/include/c++/14/bits/stl_pair.h:1052:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::set<int>::iterator' {aka 'std::_Rb_tree<int, int, std::_Identity<int>, std::less<int>, std::allocator<int> >::const_iterator'} is not derived from 'const std::pair<_T1, _T2>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
In file included from /usr/include/c++/14/bits/basic_string.h:47,
                 from /usr/include/c++/14/string:54:
/usr/include/c++/14/string_view:651:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(basic_string_view<_CharT, _Traits>, basic_string_view<_CharT, _Traits>)'
  651 |     operator!=(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:651:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::_Rb_tree_const_iterator<int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   50 |                                 for(set<int>::iterator it=v[p.first].graph.begin();it!=v[p.first].graph.end();it++)
      |                                                                                                             ^
/usr/include/c++/14/string_view:658:5: note: candidate: 'template<class _CharT, class _Traits> constexpr bool std::operator!=(basic_string_view<_CharT, _Traits>, __type_identity_t<basic_string_view<_CharT, _Traits> >)'
  658 |     operator!=(basic_string_view<_CharT, _Traits> __x,
      |     ^~~~~~~~
/usr/include/c++/14/string_view:658:5: note:   template argument deduction/substitution failed:
a.cc:50:109: note:   'std::_Rb_tree_const_iterator<int>' is not derived from 'std::basic_string_view<_CharT, _Traits>'
   50 |                                 for(set<int>::iterator it=v[p.