哈哈哈你不会真的点进来了吧😄

//顶级垃圾程序
//A very bad program
#include <bits/stdc++.h>
using namespace std;
const int MAXSIZE = 1e5 + 5;
const int INF = 1e6 + 5;
/*
函数名:dijkstra()  迪科斯彻最短路径算法 
参数:Begin:源点的索引;End:终点的索引;
      prev[]:前驱数组,即prev[i]为从Begin到i最短路径时,i前面那个顶点的索引 
	  dist[]:距离数组,即dist[i]是Begin到i的最短路径的长度 
	  n:点的数量 
功能:算出从源点下标到其余点最短路径,轨迹记录在prev[],距离记录在dist[]。 
*/
int n, g[MAXSIZE][MAXSIZE];
void dijkstra(int Begin, int End, int prev[], int dist[], int n){ 
	int i, j, k;
	int ans;
	int tmp;
	bool flag[n]; //flag[i]=1表示Begin->i的最短路径已获取
	//初始化
	for (int i = 0; i < n; i++){
		flag[i] = 0; //还没找到 
		prev[i] = Begin; //i的前驱顶点为0 
		dist[i] = g[Begin][i]; //顶点i的最短路径为Begin->i的权 
	} 
	flag[Begin] = 1;
	dist[Begin] = 0;
	for (i = 1; i < n; i++){
		ans = INF;
		for (j = 0; j < n; j++){
			//若从Begin->j距离<ans,而且从Begin->j的最短路径还未获取 
			if (!flag[j] && dist[j] < ans){
				ans = dist[j];//改变最近距离 
				k = j; //记录一下 
			}
		}
		//在未获取最短路径的顶点中,找到离Begin最近的顶点k
		flag[k] = 1; //标记顶点k,dist[k]已确定 
		if (k == End){ //结束了 
			break; //没了 
		}
		//已知顶点k的最短路径后,更新未获取最短路径的顶点的最短路径和前驱顶点
		for (int j = 0; j < n; j++){
			tmp = (g[k][j] == INF ? INF : (ans + g[k][j])); //防溢出
			if (flag[j] == 0 && (tmp < dist[j])){//若j还不是最短距离且k->j距离比记录的进 
				prev[j] = k;
				dist[j] = tmp;
			} 
		}
	}
}
int main(){

	return 0;
}