Language: C++

#include <iostream>
#include <map>
#include <vector>
#include <algorithm>
#include <numeric>

using namespace std;

int data[101][101];

int prim( int n )
{
	vector<int> key( n, numeric_limits<int>::max() );
	key[0] = 0;
	vector<int> pq;
	vector<bool> inQueue( n, true );
	for( int i = 0;i < n;i++ ){
		pq.push_back( key[i] );
	}

	while( !pq.empty() ){
		vector<int>::iterator it = min_element( pq.begin(), pq.end() );
		int u = distance( pq.begin(), it );
		pq.erase( it );
		inQueue[u] = false;

		for( int i = 0;i < n;i++ ){
			if( data[u][i] ){
				if( inQueue[i] ){
					int w = data[u][i];
					if( w < key[i] ){
						key[i] = w;
						pq[i] = w;
					}
				}
			}
		}
	}

	int answer = 0;
	for( int i = 0;i < n;i++ ){
		answer += key[i];
	}

	return answer;
}

int main(int argc, char const* argv[])
{
	int n,m;
	int a,b,cost;

	while( cin >> n >> m && n != 0 ){
		for( int i = 0;i < 101;i++ ){
			for( int j = 0;j < 101;j++ ){
				data[i][j] = 0;
			}
		}
		for( int i = 0;i < m;i++ ){
			cin >> a >> b >> cost;
			data[a][b] = cost;
			data[b][a] = cost;
		}

		int answer = prim( n );
		cout << answer << endl;
	}

	return 0;
}

Compiler output:
a.cc: In function 'int prim(int)':
a.cc:13:29: error: 'numeric_limits' was not declared in this scope
   13 |         vector<int> key( n, numeric_limits<int>::max() );
      |                             ^~~~~~~~~~~~~~
a.cc:13:44: error: expected primary-expression before 'int'
   13 |         vector<int> key( n, numeric_limits<int>::max() );
      |                                            ^~~
a.cc:28:29: error: reference to 'data' is ambiguous
   28 |                         if( data[u][i] ){
      |                             ^~~~
In file included from /usr/include/c++/14/string:53,
                 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,
                 from /usr/include/c++/14/ostream:40,
                 from /usr/include/c++/14/iostream:41,
                 from a.cc:1:
/usr/include/c++/14/bits/range_access.h:344:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(initializer_list<_Tp>)'
  344 |     data(initializer_list<_Tp> __il) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:334:5: note:                 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])'
  334 |     data(_Tp (&__array)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:323:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)'
  323 |     data(const _Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:312:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)'
  312 |     data(_Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
a.cc:9:5: note:                 'int data [101][101]'
    9 | int data[101][101];
      |     ^~~~
a.cc:30:49: error: reference to 'data' is ambiguous
   30 |                                         int w = data[u][i];
      |                                                 ^~~~
/usr/include/c++/14/bits/range_access.h:344:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(initializer_list<_Tp>)'
  344 |     data(initializer_list<_Tp> __il) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:334:5: note:                 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])'
  334 |     data(_Tp (&__array)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:323:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)'
  323 |     data(const _Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:312:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)'
  312 |     data(_Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
a.cc:9:5: note:                 'int data [101][101]'
    9 | int data[101][101];
      |     ^~~~
a.cc: In function 'int main(int, const char**)':
a.cc:56:33: error: reference to 'data' is ambiguous
   56 |                                 data[i][j] = 0;
      |                                 ^~~~
/usr/include/c++/14/bits/range_access.h:344:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(initializer_list<_Tp>)'
  344 |     data(initializer_list<_Tp> __il) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:334:5: note:                 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])'
  334 |     data(_Tp (&__array)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:323:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)'
  323 |     data(const _Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:312:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)'
  312 |     data(_Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
a.cc:9:5: note:                 'int data [101][101]'
    9 | int data[101][101];
      |     ^~~~
a.cc:61:25: error: reference to 'data' is ambiguous
   61 |                         data[a][b] = cost;
      |                         ^~~~
/usr/include/c++/14/bits/range_access.h:344:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(initializer_list<_Tp>)'
  344 |     data(initializer_list<_Tp> __il) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:334:5: note:                 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])'
  334 |     data(_Tp (&__array)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:323:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)'
  323 |     data(const _Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:312:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)'
  312 |     data(_Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
a.cc:9:5: note:                 'int data [101][101]'
    9 | int data[101][101];
      |     ^~~~
a.cc:62:25: error: reference to 'data' is ambiguous
   62 |                         data[b][a] = cost;
      |                         ^~~~
/usr/include/c++/14/bits/range_access.h:344:5: note: candidates are: 'template<class _Tp> constexpr const _Tp* std::data(initializer_list<_Tp>)'
  344 |     data(initializer_list<_Tp> __il) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:334:5: note:                 'template<class _Tp, long unsigned int _Nm> constexpr _Tp* std::data(_Tp (&)[_Nm])'
  334 |     data(_Tp (&__array)[_Nm]) noexcept
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:323:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(const _Container&)'
  323 |     data(const _Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
/usr/include/c++/14/bits/range_access.h:312:5: note:                 'template<class _Container> constexpr decltype (__cont.data()) std::data(_Container&)'
  312 |     data(_Container& __cont) noexcept(noexcept(__cont.data()))
      |     ^~~~
a.cc:9:5: note:                 'int data [101][101]'
    9 | int data[101][101];
      |     ^~~~