پشنج پلاس - Go / Ruby


  • محدودیت زمان: ۰.۵ ثانیه
  • محدودیت حافظه: ۵۰ مگابایت

پشنج می‌خواهد در هزینه‌هایش صرفه‌جویی کند؛ او برای این کار، مسیرهایی که در طول روز از آن‌ها عبور می‌کند را در نظر می‌گیرد و سعی می‌کند آن‌ها را مرتب کند.

او محل‌هایی که در آن‌ها رفت و آمد دارد را با توجه به مسافت آن محل تا خانه‌اش شماره‌گذاری کرده و از شما می‌خواهد که هر بار دو محل را به عنوان یک زوج مرتب در نظر بگیرید و این زوج مرتب‌ها را با توجه به اینکه اختلاف مسافت کدام یک کمتر است مرتب کنید. فرض بر این است که پشنج هر روز مسیر سرراستی را طی می‌کند.

ورودی🔗

در خط اول nn که تعداد محل‌هاست داده می‌شود و در خط بعد nn عدد در یک خط به شما داده میشود که عدد iiام نشان دهنده aia_i است که نمایانگر مسافت محل‌هاست. فاصله بین دو محل قدر مطلق اختلاف مسافت محل‌هاست. این نکته را در نظر داشته باشید که در صورتی که دو فاصله xy|x-y| و zt|z-t| با هم برابر بود، زوجی اولویت دارد که مسافت یکی از تک‌محل‌های این زوج از هر دو تک‌محل دیگر کمتر باشد. به طور مثال اگر xx از zz و tt کوچک‌تر بود، زوج (x,y)(x, y) اولویت دارد.

توجه کنید که ممکن است مسافت یک محل چندین بار در ورودی بیاید و شما نباید مقدار تکراری را در نظر بگیرید؛ بنابراین باید از هر مقدار فقط یکی را در نظر بگیرید. 1n901 \leq n \leq 90

2 000ai2 000-2\ 000 \leq a_i \leq 2\ 000

خروجی🔗

شما باید در (m2){m \choose 2} خط خروجی، زوج مرتب [x,y][x, y] را خروجی بدهید، به طوری که x<yx < y. این زوج مرتب‌ها بر اساس قدرمطلق اختلاف xx و yy مرتب شده‌اند. توجه کنید که mm برابر با تعداد اعداد متمایز آرایه aa است. در صورتی که اختلاف‌ها برابر بود، بر اساس مقدار xx مرتب کنید.

مثال🔗

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

4
-1 -2 3 6
Plain text

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

[-2, -1]
[3, 6]
[-1, 3]
[-2, 3]
[-1, 6]
[-2, 6]
Plain text

به طور مثال، در اینجا، اگر اعداد را مرتب‌شده در نظر بگیریم، بازه اعداد به صورت رو به رو خواهد بود: 6,3,1,26 ,3 ,-1 ,-2

حال این بازه‌ها که سر و ته هر یک زوج مرتبی از اعداد بالاست را در نظر بگیرید: [6,3],[6,1],[3,1],[6,2],[3,2],[1,2][6 , 3] ,[6 ,-1] ,[3 ,-1] ,[6 ,-2] ,[3 ,-2] ,[-1, -2]

اختلاف سر و ته هر بازه به صورت رو به رو خواهد بود: 3,7,4,8,5,13 ,7 ,4 ,8 ,5 ,1

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

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

7
22 43 32 6 30 41 43
Plain text

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

[30, 32]
[41, 43]
[22, 30]
[32, 41]
[22, 32]
[30, 41]
[32, 43]
[30, 43]
[6, 22]
[22, 41]
[22, 43]
[6, 30]
[6, 32]
[6, 41]
[6, 43]
Plain text

در این ورودی فقط یکی از ۴۳ ها در نظر گرفته شده است.