بازگشت جعبه


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

در حین تغییر دکوراسیون، همیشه حالت‌های جدیدی پیش می‌آید! "رادزینکا دوبرامیل ویچشسلافوویچ"

برای مثال، وقتی کوئرا بالاخره موفق شد که دکوراسیون شرکتش را تغییر دهد، باید دوباره کارتون‌هایی را که چند روز پیش اعضا بسته بودند، دوباره باز می‌کردند و می‌چیدند. قبل از تغییر آنها این جعبه‌ها را در یک ردیف چیده بودند و در حین تغییر ترتیب این جعبه‌ها به هم ریخت. از این رو تصمیم گرفتند که قبل از باز کردن جعبه‌ها، آن‌ها را دوباره مرتب کنند و به حالت سابق برگردانند تا سرعتشان در چینش بیشتر شود. آنها می‌دانند که جعبه‌ای که الآن در مکان iiام قرار دارد، قبل از تغییر در مکان aia_i بود.

حال ‌آن‌ها تعدادی کارگر گرفته‌اند (خود ناتوانند) تا جعبه‌ها را برایشان مرتب کنند. آنها در هر ثانیه می‌توانند به یک کارگر بگویند که جعبه‌ای که در مکان ii است را با جعبه‌ای که در مکان jj است عوض کند و اینکار برای هر کارگر تنها یک ثانیه طول می‌کشد. تنها نکته‌ای که وجود دارد این است که زمانی که به یک کارگر گفته‌شد که جعبه‌ی در مکان ii را با جعبه‌ی در مکان jj عوض کند، به کارگر دیگری نمی‌توان گفت که جعبه‌ی در مکان ii یا jj را با جعبه‌ی دیگری عوض کند؛ یعنی در آن ثانیه هیچ عملیات دیگری روی این دو جعبه نمی‌تواند صورت پذیرد یا به عبارت دیگری روی هر جعبه در هر ثانیه تنها یک عملیات می‌تواند انجام شود. دقت کنید که کارگر‌ها در هر ثانیه به صورت موازی کار می‌کنند.

متاسفانه سایت‌های رقیب کوئرا از این فرصت دوری کوئرا استفاده کرده و هی مسابقه برگزار کردند. از این رو تیم تصمیم دارد که هر چه زودتر به میادین برگردد. پس می‌خواهد در کمترین زمان ممکن جعبه‌ها را مرتب شده ببیند. حال از شما می‌خواهد که به کارگران در مرتب کردن جعبه‌ها کمک کرده و بگویید که چگونه و به چه ترتیبی جعبه‌ها را مرتب کنند. دقت کنید که تیم در استخدام کارگر محدودیتی ندارد و هر تعداد که بخواهد می‌تواند کارگر استخدام کند.

ورودی🔗

در خط اول ورودی عدد nn‌ آمده است که نمایانگر تعداد جعبه‌ها می‌باشد.

سپس در خط بعد nn‌ عدد آمده است که عدد ii‌ام aia_i می‌باشد و نمایانگر مکان قبلی جعبه‌ای است که الآن در مکان iiام قرار دارد. دقت کنید هیچ دو جعبه‌ای مکان قبلیشان یکسان نیست؛ یعنی در خط دوم ورودی به شما یک جایگشت از ۱ تا nn داده می‌شود.

1n100 000 1 \le n \le 100 \ 000 1ain 1 \le a_i \le n

خروجی🔗

در سطر اول خروجی کمترین تعداد ثانیه‌‌ای را که لازم دارند تا جعبه‌ها را مرتب کنند، چاپ کنید.

سپس در سطر‌های بعدی توضیح هر ثانیه را به این صورت خروجی دهید:

ابتدا تعداد عملیات‌ها را در این ثانیه خروجی دهید.

سپس در سطر‌های بعدی، در هر سطر، یک عملیات را به صورت "aa bb" خروجی دهید که نمایانگر این است که یک کارگر در این ثانیه جعبه‌ی در مکان aa را با جعبه‌ی در مکان bb عوض کند.

در صورت وجود چند جواب به دلخواه یکی را چاپ کنید.

مثال🔗

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

4
2 1 4 3
Plain text

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

1
2
1 2
3 4
Plain text

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

3
3 2 1
Plain text

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

1
1
1 3
Plain text

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

3
2 3 1
Plain text

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

2
1
1 2
1
1 3
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.