QOJ.ac

QOJ

Time Limit: 7 s Memory Limit: 1024 MB Total points: 100

#6448. شق مسارات جديدة

Statistics

اشترت ولايتك للتو مساحة كبيرة من الأرض البكر، وترغب في تحويلها إلى متنزه طبيعي يضم مسارات للمشي. تحتوي الأرض على $n$ أماكن مثيرة للاهتمام قد يرغب الزوار في السير إليها، منها $k$ أماكن مميزة جدًا. ترغب الولاية في وصل هذه الأماكن بمسارات للمشي. يوجد $m$ مسارات مرشحة يمكن الاختيار منها، يصل كل منها مباشرة بين مكانين بتكاليف مختلفة. هناك بعض القيود على اختيار المسارات. أولًا، يجب أن توجد طريقة واحدة بالضبط للسير من أي مكان إلى أي مكان آخر. ثانيًا، يجب أن يصل $w$ من المسارات بالضبط مباشرة بين مكان مميز ومكان عادي. وبالطبع، ترغب الولاية في تقليل تكلفة شق هذه المسارات إلى أدنى حد.

الإدخال

يتكون كل إدخال من حالة اختبار واحدة. لاحظ أن برنامجك قد يُشغّل عدة مرات على إدخالات مختلفة. يحتوي السطر الأول على أربعة أعداد صحيحة $n$ و$m$ و$k$ و$w$، حيث $n$ ($2 \le n \le 2 \cdot 10^5$) هو عدد الأماكن، و$m$ ($1 \le m \le 5 \cdot 10^5$) هو عدد المسارات المباشرة المحتملة بين الأماكن، و$k$ ($1 \le k < n$) هو عدد الأماكن المميزة، و$w$ ($1 \le w \le n-1$) هو عدد المسارات المباشرة بين مكان مميز وآخر غير مميز التي ترغب الولاية في شقها. الأماكن مرقمة من $1$ إلى $n$.

يحتوي كل سطر من الأسطر الـ$k$ التالية على عدد صحيح واحد $s$ ($1 \le s \le n$) يحدد مكانًا مميزًا. هذه القيم مختلفة ومرتبة تصاعديًا.

يصف كل سطر من الأسطر الـ$m$ التالية مسارًا محتملًا يمكن للولاية شقه. يتكون كل سطر من ثلاثة أعداد صحيحة $a$ و$b$ و$c$، حيث يصل المسار بين المكانين $a$ و$b$ ($1 \le a,b \le n$، $a \ne b$)، وتبلغ تكلفته $c$ ($1 \le c \le 10^5$). لا يوجد أكثر من مسار محتمل واحد بين أي مكانين، والمسار من $a$ إلى $b$ هو نفسه المسار من $b$ إلى $a$.

الإخراج

اطبع عددًا صحيحًا واحدًا يمثل أدنى تكلفة إجمالية لشق المسارات في المتنزه الجديد مع الالتزام بالقيود، أو $-1$ إذا كان ذلك مستحيلًا.

أمثلة

الإدخال 1

3 3 1 2
2
1 2 2
1 3 1
2 3 3

الإخراج 1

5

الإدخال 2

3 1 1 1
2
1 2 2

الإخراج 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.