思路:计算出所有点到1号点的最短距离,到x号点的最短距离,然后找到一些这样的点,这个点到x点的距离小于到1号点的距离,然后选出这些点中距离1号点最远的点就是结果。
#include <cstdio>
#include <cstring>
#include <vector>
#include <queue>
using std::priority_queue;
using std::vector;
const int MAXN = 2e5+10;
struct qnode
{
int v,c;
qnode(int _v = 0