Language: C++

#include<iostream>
#include<algorithm>
#include<queue>

static const int MAX = 10000;
static const int INFTY = (1 << 20);
static const int WHITE = 0;
static const int GRAY = 1;
static const int BLACK = 2;

void dijkstra(int n, std::vector<std::pair<int, int> > adj) {
	std::priority_queue<std::pair<int, int> > PQ;
	int color[MAX];
	int d[MAX];
	for (int i = 0; i < n; i++) {
		d[i] = INFTY;
		color[i] = WHITE;
	}

	d[0] = 0;
	PQ.push(std::make_pair(0, 0));
	color[0] = GRAY;

	while (!PQ.empty()){
		std::pair<int, int> f = PQ.top(); PQ.pop();
		int u = f.second;
		color[u] = BLACK;

		//????°???????????????????????????????????????§???????????°??????
		if (d[u] < f.first * (-1))continue;
		
		for (size_t i = 0; i < adj[u].size(); i++) {
			int v = adj[u][i].first;
			if (color[v] == BLACK) continue;
			if (d[v] > d[u] + adj[u][i].second) {
				d[v] = d[u] + adj[u][i].second;
				//priority_queue????????????????????§??§??????????????????????????????-1????????????
				PQ.push(std::make_pair(d[v] * -1, v));
				color[v] = GRAY;
			}
		}
	}

	for (int i = 0; i < n; i++) {
		std::cout << i << " " << (d[i] == INFTY ? -1 : d[i]) << std::endl;
	}
}

int main() {
	std::vector<std::pair<int, int> > adj[MAX];
	int n;

	std::cin >> n;
	for (int i = 0; i < n; i++) {
		int u, k;
		std::cin >> u >> k;
		for (int j = 0; j < k; j++) {
			int v, c;
			std::cin >> v >> c;
			adj[u].push_back(std::make_pair(v, c));
		}
	}

	dijkstra(n, adj);
	
	return 0;
}

Compiler output:
a.cc: In function 'void dijkstra(int, std::vector<std::pair<int, int> >)':
a.cc:32:47: error: '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'struct std::pair<int, int>'} has no member named 'size'
   32 |                 for (size_t i = 0; i < adj[u].size(); i++) {
      |                                               ^~~~
a.cc:33:39: error: no match for 'operator[]' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} and 'size_t' {aka 'long unsigned int'})
   33 |                         int v = adj[u][i].first;
      |                                       ^
a.cc:35:49: error: no match for 'operator[]' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} and 'size_t' {aka 'long unsigned int'})
   35 |                         if (d[v] > d[u] + adj[u][i].second) {
      |                                                 ^
a.cc:36:53: error: no match for 'operator[]' (operand types are '__gnu_cxx::__alloc_traits<std::allocator<std::pair<int, int> >, std::pair<int, int> >::value_type' {aka 'std::pair<int, int>'} and 'size_t' {aka 'long unsigned int'})
   36 |                                 d[v] = d[u] + adj[u][i].second;
      |                                                     ^
a.cc: In function 'int main()':
a.cc:64:21: error: could not convert '(std::vector<std::pair<int, int> >*)(& adj)' from 'std::vector<std::pair<int, int> >*' to 'std::vector<std::pair<int, int> >'
   64 |         dijkstra(n, adj);
      |                     ^~~
      |                     |
      |                     std::vector<std::pair<int, int> >*