QOJ.ac

QOJ

Limite de temps : 4.0 s Limite de mémoire : 512 MB Points totaux : 100

#17603. REFUGIO

Statistiques

En una habitación en penumbra, aproximadamente a las 23:55, Milan se sentó ante una mesa de tres patas y comenzó a reflexionar sobre las posibles consecuencias que una catástrofe nuclear provocaría en su ciudad. Dado que Milan desempeña el papel de alcalde, conoce muy bien todos los hechos relevantes.

Sabe que en su ciudad viven exactamente $N$ personas y que cada habitante vive en su propia casa. Existen carreteras entre exactamente $M$ pares de casas, y para cada carretera se conoce el tiempo necesario para recorrerla. Finalmente, Milan sabe en cuáles de las $K$ casas se encuentran los refugios atómicos y cuántas personas caben en cada refugio. Teniendo todo esto en cuenta, a Milan le preocupa la siguiente pregunta: "¿Cuál es el tiempo mínimo necesario para evacuar a todos los habitantes de esta ciudad?". Ayude a Milan a responder a esta pregunta.

Por supuesto, la evacuación implica que cada habitante termine en algún refugio atómico. Puede suponer que los habitantes se mueven de manera óptima (por el camino más corto) y que varias personas pueden moverse simultáneamente a lo largo de una misma carretera en direcciones potencialmente diferentes. Además, puede suponer que existe al menos un camino entre cada dos casas utilizando algún subconjunto de las carreteras dadas.

Entrada

En la primera línea hay números naturales $N$ ($1 \le N \le 100\,000$), $M$ ($1 \le M \le 300\,000$) y $K$ ($1 \le K \le 17$) que representan el número de habitantes, el número de carreteras y el número de refugios atómicos. Las casas están numeradas del 1 al $N$.

En cada una de las siguientes $M$ líneas hay tres números naturales $A$, $B$ ($1 \le A, B \le N$, $A \neq B$) y $C$ ($1 \le C \le 10^9$) que indican que entre las casas con números $A$ y $B$ hay una carretera cuyo recorrido requiere $C$ unidades de tiempo.

En cada una de las siguientes $K$ líneas hay dos números naturales $X$ ($1 \le X \le N$) y $Y$ ($1 \le Y \le 10^9$) que indican que en la casa con el número $X$ hay un refugio atómico en el que se pueden refugiar como máximo $Y$ personas. La capacidad total de todos los refugios será mayor o igual a $N$.

Salida

En una única línea, imprima el tiempo mínimo necesario para la evacuación de todos los habitantes de esta ciudad.

Subtareas

Subtarea Puntos Restricciones adicionales
1 30 $N \le 100, M \le 500, K \le 5$
2 30 $K \le 10$
3 40 sin restricciones adicionales

Ejemplos

Entrada 1

5 5 2 
1 2 1 
1 3 3 
2 3 4 
3 4 1 
4 5 1 
1 10 
4 2

Salida 1

3

Nota

Explicación del primer ejemplo: En 3 unidades de tiempo, las personas de las casas número 1, 2 y 3 pueden ir al refugio en la casa 1, y las personas de las casas 4 y 5 al refugio en la casa 4. En menos tiempo, no todas las personas pueden llegar a los refugios porque el refugio en la casa 4 admite como máximo a dos personas.

Entrada 2

7 8 3 
1 2 5 
2 3 3 
3 4 5 
1 4 1 
4 5 7 
5 6 2 
6 7 1 
4 7 4 
3 3 
7 3 
6 2

Salida 2

5

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.