- محدودیت زمان: ۳ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
فرض کنید میخواهیم جایگشتهای a
تا z
را از بیشترین به کمترین ارزش مرتب کنیم (اگر دو جایگشت ارزش برابر داشتند، جایگشتی که از نظر ترتیب الفبایی کوچکتر باشد، دارای اولویت بالاتر است).
ارزش یک جایگشت به شکل زیر تعریف میشود: $$ value(\pi) = \sum_{c='a'}^{'z'} \left( cnt_c - cnt_{\pi_c} \right) ^ 2 $$
منظور از $cnt_c$، تعداد تکرار حرف $c$ در رشته است.
از آنجایی که تعداد این جایگشتها بسیار زیادند، کافیاست تنها $k$ جایگشت اول را در دنباله نزولی مرتبشده جایگشتها خروجی دهید.
ورودی
در خط اول، عدد صحیح $k$ میآید.
$$ 1 \leq k \leq 100 $$
سپس در خط بعد ورودی یک آرایه $cnt$ از اعداد صحیح به طول $26$ داده میشود که نشاندهنده تعداد تکرارهای هر حرف از الفبا است.
$$ 0 \leq cnt_i \leq 10^6 $$
تضمین میشود که $cnt$ها اعداد متمایز باشند.
خروجی
در $k$ خط خروجی، در هر خط یک جایگشت از حروف a
تا z
با فاصله از هم خروجی دهید که خط $i$ام نشان دهنده جایگشت $i$ام است.
مثالها
ورودی نمونه ۱
3
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26
خروجی نمونه ۱
z y x w v u t s r q p o n m l k j i h g f e d c b a
y z x w v u t s r q p o n m l k j i h g f e d c b a
z x y w v u t s r q p o n m l k j i h g f e d c b a
ارسال پاسخ برای این سؤال