Module: برنامه نویسی نمودار پویا


Problem

5 /7


میانبر به DAG

Theory Click to read/hide

در راه حل هایی که از برنامه نویسی پویا استفاده می کنند، ترتیب محاسبه دینامیک مهم است (لازم است مقادیری که مقدار فعلی به آن بستگی دارد قبلا محاسبه شود).
بنابراین، در صورت لزوم استفاده از برنامه‌نویسی پویا بر روی گراف‌های غیر چرخه‌ای جهت‌دار، لازم است در ابتدا یک مرتب‌سازی توپولوژیکی از نمودار ساخته شود. سپس دینامیک را با مرتب‌سازی راس‌ها به ترتیب مرتب‌سازی توپولوژیکی ساخته‌شده محاسبه کنید (بسته به مسئله، ترتیب پیمایش می‌تواند از منبع به سینک یا بالعکس باشد).
 
 

Problem

یک نمودار غیر چرخه ای وزن دار جهت داده شده است. لازم است کوتاهترین مسیر در آن پیدا شود
از راس s به راس t.

ورودی:
خط اول فایل ورودی شامل چهار عدد صحیح n، m، s و t است - تعداد رئوس، لبه‌های نمودار، رئوس اولیه و نهایی به ترتیب (1 <= n <= 100000; 0 <= m <= 200000; 1 < ;= s، t <= n).
m خطوط بعدی شامل توضیحات لبه ها، یکی در هر خط است. 
یال i با سه عدد صحیح bi، ei و wi توصیف می‌شود - به ترتیب ابتدا، انتهای و طول یال ( 1 <= b i، ei <= n;|wi| <= 1000). 
نمودار شامل چرخه و حلقه نیست.

خروجی:
خط اول فایل خروجی باید شامل یک عدد صحیح باشد - طول کوتاهترین مسیر از s تا t. 
اگر مسیری از s به t وجود ندارد، "غیرقابل دسترسی" را چاپ کنید.

مثال:
  <بدن>
ورودی خروجی
2 1 1 2
1 2 -10
-10
2 1 2 1
1 2 -10
غیرقابل دسترسی