Problem

9/14

خوارزمية Dijkstra في O (M logN) مع priority_queue: ابدأ (C ++)

Problem

يتم إعطاؤك رسم بياني مرجح موجه. أوجد أقصر مسافة من رأس معين إلى آخر.
& nbsp؛
إدخال
يحتوي السطر الأول على ثلاثة أرقام: N و M و S و F (1 & le؛ N & le؛ 100، 1 & le؛ S، F & le؛ N) ، حيث N & ndash؛ عدد رؤوس الرسم البياني M & ndash؛ عدد الأضلاع ، نبسب ؛ ال & ndash؛ الرأس الأولي و F & ndash؛ أخير. في السطور N التالية ، أدخل أرقام N لكل منها ، بما لا يتجاوز 100 ، & ndash؛ مصفوفة تجاور الرسم البياني ، حيث يعني -1 عدم وجود حافة بين الرؤوس وأي رقم غير سالب & ndash؛ وجود حافة وزن معين. الأصفار مكتوبة على القطر الرئيسي للمصفوفة.
& nbsp؛
الإخراج
مطلوب عرض المسافة المرغوبة أو -1 إذا لم يكن هناك مسار بين الرؤوس المحددة.

أمثلة <الجسم>
# إدخال الإخراج
1 4 4 3 4
3 1 3
1 2 3
2 4 3
3 4 10
9