کوتاه‌ترین مسیر


  • محدودیت زمان: ۴ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

یک گراف وزن‌دار و جهت‌دار GG با nn راس و mm یال داریم. راس‌های این گراف با اعداد 11 تا nn شماره‌گذاری شده‌است.

از شما می‌خواهیم برنامه‌ای بنویسید تا کوتاه‌ترین فاصله‌ی راس ۱ تا همه‌ی راس‌ها را چاپ کنید. (اگر مسیری از راس شماره‌ی ۱ به راسی وجود نداشت فاصله را با -1 نشان دهید.)

ورودی🔗

در سطر اول ورودی، دو عدد صحیح nn و mm که با یک فاصله از هم جدا شده‌اند داده می‌شود و به ترتیب تعداد راس‌ها و یال‌های گراف GG را نشان می‌دهند.

1n3000001 \leq n \leq 300\, 0000m3000000 \leq m \leq 300\, 000

در mm سطر بعدی، در هر سطر سه عدد uu، vv و ww آمده و نشان دهنده‌ی وجود یک یال از راس uu به راس vv با وزن ww است.

1u,vn1 \leq u, v \leq n 1w1091 \leq w \leq 10^9

خروجی🔗

در یک سطر، فاصله‌ی راس ۱ از همه‌ی راس‌ها را به ترتیب چاپ کنید. فاصله‌ی راس ۱ از خودش برابر ۰ است. اگر مسیری از ۱ به راسی وجود نداشت، فاصله را با -1 نشان دهید.

مثال🔗

ورودی نمونه ۱🔗

5 7
1 2 10
2 1 7
1 5 2
3 4 4
1 3 5
3 5 4
5 3 1
Plain text

خروجی نمونه ۱🔗

0 10 3 7 2
Plain text

ورودی نمونه ۲🔗

2 5
1 1 5
2 2 3
1 2 2
2 1 3
1 2 4
Plain text

خروجی نمونه ۲🔗

0 2
Plain text