گراف کشی - Go / PHP


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

ویتی برای تحلیل اطلاعات مربوط به یکی از پروژه هایش نیاز دارد گراف زیر را بکشد: گراف ما از nn راس تشکیل شده است. روی هر یک از این راس ها یک عدد aia_i که یک عدد حسابی کوچکتر مساوی ۱۰۰۰۰۰ است نوشته شده است. دو راس vv و uu به هم وصل اند اگر و تنها اگر اختلاف aua_uو ava_v دقیقا برابر ۱ باشد. با گرفتن اعداد روی راس ها به ویتی کمک کنید تا بفهمد برای کشیدن گرافش به چند یال نیاز دارد.

ورودی🔗

در خط اول عدد nn داده میشود که nn تعداد راس هاست. در خط بعدی n عدد داده میشود که iiامی آنها عدد روی راس ii را نشان می دهد. 1n50 0001 \le n \le 50\ 000 1ai100 0001 \le a_i \le 100\ 000

خروجی🔗

خروجی برنامه ی شما شامل یک عدد است که تعداد یال های لازم برای کشیدن این گراف را نشان میدهد.

مثال🔗

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

3
1 2 1 
Plain text

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

2
Plain text

بین راس شماره ۱ و ۲ و همچنین بین راس شماره ی ۲ و ۳ یال وجود دارد چون اختلاف عدد های روی آن ها (۱ و ۲) برابر ۱ است.

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

12
1 2 4 5 4 5 5 6 7 7 7 7
Plain text

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

14
Plain text