QOJ.ac

QOJ

実行時間制限: 1 s メモリ制限: 1024 MB 満点: 100 ハック可能 ✓

#18586. Gráfico de regresión

統計

Se tiene un grafo simple que consta de $N$ vértices numerados del $1$ al $N$ y $M$ aristas ponderadas no dirigidas.

Al moverse entre dos vértices utilizando una arista, el tiempo requerido es igual al peso de dicha arista. Por ejemplo, si una arista tiene un peso de 3, se tardan 3 horas en recorrerla. Durante el movimiento, no se está en ningún vértice. También es posible permanecer en un vértice sin utilizar ninguna arista para dejar pasar el tiempo.

Debes viajar desde el vértice $1$ hasta el vértice $N$, pasando obligatoriamente por el vértice $K$, en el menor tiempo posible.

Puedes realizar la siguiente acción de regresión como máximo una vez:

  • Moverse al vértice donde te encontrabas hace $T$ unidades de tiempo. Debes estar en un vértice tanto antes como después de realizar este movimiento. Esta acción no puede realizarse si no han transcurrido al menos $T$ unidades de tiempo desde el inicio.

Calcula el tiempo mínimo necesario para viajar desde el vértice $1$ hasta el vértice $N$ pasando por el vértice $K$, considerando que puedes utilizar la acción de regresión como máximo una vez.

Entrada

La primera línea contiene el número de vértices $N$, el número de aristas $M$, el número del vértice por el que se debe pasar $K$ y el valor $T$, separados por espacios. $(3 \le N \le 10^5;$ $0 \le M \le 10^5;$ $2 \le K \le N-1;$ $1 \le T \le 10^9)$

Desde la segunda línea y durante $M$ líneas, se proporcionan los dos vértices $u$ y $v$ que conecta cada arista, junto con su peso $c$, separados por espacios. $(1 \le u, v \le N;$ $u \neq v;$ $0 \le c \le 10^5)$

Salida

En la primera línea, imprime el tiempo mínimo necesario para viajar desde el vértice $1$ hasta el vértice $N$ pasando por el vértice $K$. Si dicho recorrido no es posible, imprime -1 en su lugar.

Ejemplos

Entrada 1

4 3 3 1
1 2 2
2 3 1
2 4 3

Salida 1

6

Entrada 2

4 3 2 0
1 2 1
2 3 2
3 1 3

Salida 2

-1

Discussions

About Discussions

The discussion section is only for posting: General Discussions (problem-solving strategies, alternative approaches), and Off-topic conversations.

This is NOT for reporting issues! If you want to report bugs or errors, please use the Issues section below.

Open Discussions 0
No discussions in this category.

Issues

About Issues

If you find any issues with the problem (statement, scoring, time/memory limits, test cases, etc.), you may submit an issue here. A problem moderator will review your issue.

Guidelines:

  1. This is not a place to publish discussions, editorials, or requests to debug your code. Issues are only visible to you and problem moderators.
  2. Do not submit duplicated issues.
  3. Issues must be filed in English or Chinese only.
Active Issues 0
No issues in this category.
Closed/Resolved Issues 0
No issues in this category.