مجید که به تازگی برنامهنویسی یاد گرفته است، شبه کدی برای مرتب سازی صعودی یک آرایه به اسم به طول نوشته است که به وضوح غلط است. این تکه کد به صورت زیر است:
میلاد جایگشتی از اعداد ۱ تا دارد که بعضی از اعداد آن مشخص نیست و به جای آن صفر گذاشته شده است.
حال ما میخواهیم بدانیم آیا میتوانیم جای صفرهای جایگشت، اعدادی قرار بدهیم به طوری که در انتها:
(برای فهمیدن بهتر، بخش ورودی و توضیح نمونهها را بخوانید.)
در خط اول عدد که تعداد اعداد جایگشت است به شما داده میشود. در خط بعدی عدد،بین تا ، که با فاصله جدا شدهاند به شما داده میشود که اعداد جایگشت میلاد است.
اگر میتوانستیم صفرها را به گونهای عوض کنیم که شرایط صورت سوال را داشت در خط اول خروجی عبارت Yes
و در خط بعدی جایگشت کامل را به همراه اعدادی که به جای صفرها جایگزین شدهاند چاپ کنید.
(چنانچه چندین جایگشت وجود داشت، شما به دلخواه یکی از آنها را چاپ کنید.)
در غیر اینصورت در یک خط عبارت No
را چاپ کنید.
توضیح: تنها عددی که میتواند جای ۰ بگذارد عدد ۴ است که برنامه مجید میتواند این جایگشت را مرتب کند.
توضیح: اگر جایگشت فوق را به برنامه مجید بدهیم آن را به درستی مرتب نمیکند. توجه کنید که جایگشت فوق یکی از جواب های مسئله است؛ جایگشتهای دیگری نیز وجود دارد که برنامهی مجید روی آنها درست کار نمیکند.