4504:[GESP202503八级] 上学

文件提交:无需freopen 内存限制:128 MB 时间限制:1.000 S
评测方式:普通裁判
金币值:
命题人:
提交:0 解决:0

题目描述

## 题目背景 2025 年 03 月 GESP C++ 八级编程第 1 题 ## 题目描述 C 城可以视为由 $n$ 个结点与 $m$ 条边组成的无向图。这些结点依次以 $1, 2, ..., n$ 标号,边依次以 $1, 2, ..., m$ 标号。第 $i$ 条边 $(1 \leq i \leq m)$ 连接编号为 $u_{i}$ 与 $v_{i}$ 的结点,长度为 $l_{i}$ 米。 小 A 的学校坐落在 C 城中编号为 $s$ 的结点。小 A 的同学们共有 $q$ 位,他们想在保证不迟到的前提下,每天尽可能晚 地出门上学。但同学们并不会计算从家需要多久才能到学校,于是找到了聪明的小 A。第 $i$ 位同学 $(1 \leq i \leq q)$ 告 诉小 A,他的家位于编号为 $h_{i}$ 的结点,并且他每秒能行走 $1$ 米。请你帮小 A 计算,每位同学从家出发需要多少秒才 能到达学校呢? ## 输入格式 第一行,四个正整数 $n, m, s, q$,分别表示 C 城的结点数与边数,学校所在的结点编号,以及小 A 同学们的数量。 接下来 $m$ 行,每行三个正整数 $u_{i}, v_{i}, l_{i}$,表示 C 城中的一条无向边。 接下来 $q$ 行,每行一个正整数 $h_{i}$,表示一位同学的情况。 ## 输出格式 共 $q$ 行,对于每位同学,输出一个整数,表示从家出发到学校的最短时间。 ## 样例 ```input1 5 5 3 3 1 2 3 2 3 2 3 4 1 4 5 3 1 4 2 5 1 4 ``` ```output1 4 3 1 ``` ## 数据范围 对于 $20\%$ 的测试点,保证 $q = 1$。 对于另外 $20\%$ 的测试点,保证 $1 \leq n \leq 500, 1 \leq m \leq 500$。 对于所有测试点,保证 $1 \leq n \leq 2 \times 10^5, 1 \leq m \leq 2 \times 10^5, 1 \leq q \leq 2 \times 10^5, 1 \leq u_{i}, v_{i}, s_{i}, h_{i} \leq n, 1 \leq l_{i} \leq 10^6$。 保证给定的图连通。

来源/分类