10785. Запити найкоротших шляхів
Відправити розв'язок
Бали:
100
Time limit:
1.0s
Memory limit:
500M
Authors:
Problem type
Allowed languages
C++, Java, Pascal, Python
Є \(n\) міст і \(m\) доріг між ними. Ваше завдання — обробити \(q\) запитів, де вам потрібно визначити довжину найкоротшого маршруту між двома заданими містами.
Обмеження
- \(1≤n≤500\)
- \(1≤m≤n^2\)
- \(1≤q≤10^5\)
- \(1≤a,b≤n\)
- \(1≤c≤10^9\)
Формат вхідних даних
У першому рядку є три цілі числа \(n\), \(m\) і \(q\): кількість міст, доріг і запитів.
Потім є \(m\) рядків, що описують дороги. У кожному рядку є три цілі числа \(a, b, c\): між містами \(a\) і \(b\) є дорога довжиною \(c\). Усі дороги є двосторонніми.
Нарешті, є \(q\) рядків, що описують запити. У кожному рядку два цілі числа \(a\) і \(b\): визначити довжину найкоротшого маршруту між містами \(a\) і \(b\).
Формат вихідних даних
Виведіть довжину найкоротшого маршруту для кожного запиту. Якщо маршруту немає, виведіть −1.
Приклад вхідних даних
4 3 5
1 2 5
1 3 9
2 3 3
1 2
2 1
1 3
1 4
3 2
Приклад вихідних даних
5
5
8
-1
3
Коментарі