دو آرایه به طول $2n$ داریم که هر یک از اعداد $1$ تا $n$ دقیقاً دو بار در هر آرایه ظاهر شدهاند. میخواهیم آرایهی اول $a_1, a_2, \dots , a_{2n}$ را به آرایهی دوم $b_1, b_2, \dots , b_{2n}$ تبدیل کنیم. در هر مرحله میتوانیم یک بار عملیات paste Copy را انجام بدهیم.
$$CopyPaste(i, j): a_i = a_j$$
در این سوال شما باید دنبالهای از عملیاتهای paste Copy ارائه کنید که آرایه اول را به آرایه دوم تبدیل کند. نمره شما بر حسب تعداد عملیاتهایتان مشخص میشود.
در خط اول عدد طبیعی $n$ آمده است.
در خط دوم $2n$ عدد طبیعی آمده است که آرایهی $a$ را نشان میدهد.
در خط سوم $2n$ عدد طبیعی آمده است که آرایهی $b$ را نشان میدهد.
در اولین خط خروجی عدد $m$ را چاپ کنید که تعداد عملیاتهای paste Copy را نشان میدهد.
در هر یک از $m$ خط بعدی، به ترتیب دو عدد $i$ و $j$ را چاپ کنید که نشانگر یک عملیات $CopyPaste(i, j) $ است.
در صورتی که تمامی تستها را با کمتر از $4n$ عملیات حل کنید، به شما ۳۰ نمره تعلق میگیرد.
در صورتی که تمامی تستها را با کمتر از $3n$ عملیات حل کنید، به شما ۶۰ نمره تعلق میگیرد.
در صورتی که تمامی تستها را با کمتر از $2n$ عملیات حل کنید، به شما نمرهی کامل تعلق میگیرد.
ورودی نمونه | خروجی نمونه |
---|---|
2 1 2 2 1 2 2 1 1 | 2 1 2 3 4 |
2 1 1 2 2 2 2 1 1 | 4 3 2 1 4 2 4 4 3 |
4 4 4 3 3 2 2 1 1 1 1 2 2 3 3 4 4 | 16 5 4 3 6 4 6 6 5 7 6 5 8 6 8 8 7 7 1 1 8 2 8 |
در دو نمونهی اول نمرهی کامل به خروجی تعلق میگیرد. در نمونهی سوم از $4n$ عملیات استفاده شده است، درنتیجه ۳۰ درصد نمره به این خروجی تعلق میگیرد. دقت کنید در صورتی این ۳۰ نمره را دریافت میکنید که تمامی تستها را با حداکثر $4n$ عملیات حل کنید!