مسئله‌ی خاص


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

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

آن‌ها پس از این که از شر ماموران سیا رها شدند، در آلمان نیز دچار مشکل دیگری شدند.

هنگامی که چرزه در کوچه پس کوچه‌های برلین قدم می‌زد یک تکه کاغذ روی زمین پیدا کرد که از او خواسته بود تا یک الگوریتم برای مرتبسازی تعدادی اعداد به صورت غیرنزولی بنویسد ولی با این که چرزه این همه ادعا داشت، نتوانست یک الگوریتم خوب پیدا بکند و این الگوریتم را نوشت:

for i = 1 to n do
{ 
  t = 0;
  for j = 1 to n do
    if(a[j] < a[i]) t = t + 1;
  ans[t+1] = a[i];
}
Plain text

در این الگوریتم طول دنباله nn است و خانه‌های آن از ۱ تا nn شماره‌گذاری شده‌اند. آرایه‌ی ansans نیز آرایه‌ی خروجی است. ** توجه کنید که تمام مقادیر دنباله‌ی ansans در ابتدا ۰ هستند!**

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

بنابراین پشمک باید یک دنباله از اعداد طبیعی مانند aa بگیرد که برخی از خانه‌های آن پر نشده است. او باید جوری تمام این خانه‌ها را با اعداد طبیعی پر کند که الگوریتم چرزه آن را به درستی مرتب‌سازی نکند. از بین تمام روش‌های ممکن برای پر کردن این دنباله، پشمک باید به طرزی این خانه‌ها را پر کند که MexMex دنباله‌ی نهایی بیشینه شود.

توجه کنید که در یک دنباله، MexMex آن دنباله را به صورت کوچک ترین عدد طبیعی که در دنباله آورده نشده باشد، تعریف می‌کنیم. برای مثال MexMex دنباله‌ی [4,3,1]\left [ 4, 3, 1\right ] برابر با 22 می باشد.

ورودی🔗

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

در خط بعد nn عدد آورده می‌شود که یا 1-1 است به این معنا که آن خانه پر نشده است و یا یک عدد طبیعی است که به معنای مقدار آن خانه در دنباله است.

تضمین می‌شود که حداقل یک خانه وجود دارد که مقدار نداشته باشد.

1n30 0001 \leq n \leq 30\ 000 1ai1091 \leq a_i \leq 10^{9}

خروجی🔗

اگر امکان پر کردن دنباله به صورتی که الگوریتم چرزه برای آن اشتباه، جواب بدهد، وجود نداشته باشد، عبارت impossible را چاپ کنید. در غیر این صورت، در یک خط پر‌شده‌ی دنباله‌ی ورودی را به صورتی که الگوریتم چرزه آن را اشتباه مرتب سازی کند و MexMex آن بیشینه‌ی ممکن باشد، چاپ‌ کنید.

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

مثال🔗

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

4
1 -1 3 4
Plain text

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

1 4 3 4
Plain text

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

4
12 -1 -1 -1
Plain text

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

12 12 1 2
Plain text

مسئله‌ی حدسی


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

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

اکنون آن‌ها به دلیلی (!) وارد کازان روسیه شده‌اند و می‌خواهند برای مدتی در آن جا اتراق کنند.

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

در این بازی، چرزه یک عدد مانند xx انتخاب می‌کند که عضو [1,n]\left [ 1, n \right ] است ولی به پشمک نمی‌گوید! پشمک می تواند تعدادی عدد *در بازه‌ی [1,n]\left[1, n \right] *روی کاغذ بنویسد و در نهایت به چرزه بدهد. چرزه نیز پس از تحویل گرفتن کاغذ، تک تک روی تمام اعداد کاغذ دست می‌گذارد و ب.م.م xx و آن عدد روی کاغذ را به پشمک می‌گوید. (چرزه هیچ وقت دروغ نمی‌گوید.) سپس پشمک باید عدد را با توجه به اطلاعات داده شده پیدا کند.

پشمک که اصلا از این بازی خوشش نیامده است، از شما می‌خواهد تا برنامه‌ای برای او بنویسید تا با گرفتن عدد nn حداقل تعداد عدد مورد نیاز برای نوشتن روی کاغذ و هم چنین این اعداد را به او بگویید. (وگرنه سفرشان همین جا پایان می‌یابد!)

تنها نکته‌ای که باید توجه کنید، این است که پشمک ابتدا تمام اعداد را می‌نویسد سپس چرزه جواب آن‌ها را می‌دهد.

ورودی🔗

در یک خط یک عدد nn داده می‌شود که بدین معنا است که 1xn1 \leq x \leq n.

1n100 0001\leq n \leq 100\ 000

خروجی🔗

در خط اول خروجی یک عدد tt، که حداقل تعداد اعداد ممکن برای نوشتن روی کاغذ، برای آگاهی یافتن از عدد xx است، نمایش داده شود.

در خط دوم نیز tt عدد که اعداد مورد نیاز برای پرسش هستند را به ترتیب صعودی چاپ کنید. هم چنین توجه کنید که هر عدد خروجی باید خودش در بازه‌ی [1,n]\left [1, n \right] باشد.

مثال🔗

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

6
Plain text

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

3
3 4 5
Plain text

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

2
Plain text

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

1
2
Plain text

توضیح:🔗

در مثال اول با امتحان کردن، می‌توان دید که پرسیدن دو عدد برای آگاهی یافتن از عدد xx کافی نیست؛ برای مثال اگر فقط دو عدد 3,4\langle 3, 4\rangle را بنویسیم، نمی‌توانیم عدد 55 را از عدد 11 تشخیص بدهیم.

برای اعداد 11، 22، 33، 44، 55 و 66 پاسخ‌های چرزه به 3,4,5\langle 3, 4, 5 \rangle به ترتیب برابر با 1,1,1\langle 1, 1, 1 \rangle ، 1,2,1\langle 1, 2, 1 \rangle ، 3,1,1\langle 3, 1, 1 \rangle ، 1,4,1\langle 1, 4, 1 \rangle ، 1,1,5\langle 1, 1, 5 \rangle و 3,2,1\langle 3, 2, 1 \rangle است که همان طور که می‌بینید، پاسخ‌ها برای هیچ دو عددی در بازه‌ی 11 تا 66 یکسان نیست.

مسئله‌ی صبحانه


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

${{عدد به فارسی|3}}$

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

توضیح تصویر

بعد از کازان نوبت ایتالیاست!

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

آن جا بود که وقتی برگشت هتل، دید چرزه ناراحت است و حسرت می‌خورد که چرا از ایران، پنیر وطنی نیاوردیم.

موقع صبحانه، اولین لقمه را چرزه (اول بزرگ تر) و بعد هم پشمک می‌خورد. (و سپس به نوبت می‌چرخد.) چرزه فقط بلد است که لقمه‌هایی را درست کند و بخورد که داخلشان aa قاچ واحد پنیر هست! ( aAa \in A ) و پشمک هم فقط بلد است لقمه‌هایی درست کند و بخورد که داخلشان bb قاچ واحد پنیر هست! ( bBb \in B )

لقمه ‌ی شرمندگی، در فرهنگ ایرانی به آخرین لقمه‌ای که از غذا خورده می‌شود، گفته می‌شود! و پس از آن یا هیچی از غذا نمی‌ماند و یا مقداری نیست که بشود از آن استفاده کرد.

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

ورودی🔗

در خط اول یک عدد nn که تعداد قاچ‌های پنیر است، داده می‌شود.

در خط دوم یک عدد A|A| داده می شود که طول مجموعه‌ی چرزه است.

در خط سوم A|A| عدد داده می شود که اعداد مجموعه‌ی چرزه هستند.

در خط چهارم یک عدد B|B| داده می‌شود که طول مجموعه‌ی پشمک هست.

در خط آخر نیز B|B| عدد داده می‌شود که اعداد مجموعه‌ی پشمک هستند.

تضمین می‌شود که حتما حداقل یک لقمه برداشته می‌شود. هم‌چنین توجه کنید که ممکن است که در دنباله‌ی قاچ‌های ممکن، اعداد برابر هم وجود داشته باشد؛ این بدین معنا است که مثلاً چرزه یا پشمک می توانند تعدادی قاچ پنیر را به روش‌های مختلف بر دارند!

1n100 0001 \leq n \leq 100\ 000 1A,B1001 \leq |A|, |B| \leq 100 1Ai,Bi100 0001 \leq A_i,B_i \leq 100\ 000

خروجی🔗

اگر چرزه، لقمه‌ی شرمندگی را بر می‌داشت، عبارت Charze و در غیر این صورت عبارت Pashmak را چاپ کنید.

مثال🔗

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

3
2
1 2
1
1
Plain text

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

Pashmak
Plain text

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

6
2
35 1
1
4
Plain text

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

Charze
Plain text

مسئه‌ی مرگ و زندگی


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

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

توضیح تصویر

هنگام ورود به عراق، بزرگ‌ترین مشکل چرزه و پشمک به وجود آمده بود و آن این بود که داعشی‌ها جان چرزه را گرفته بودند.

از آن‌جایی که چرزه یک آدم الگوریتمی است، جان او به صورت یک دنباله‌ی nn تایی خفن است. اما به چه دنباله‌ای خفن می گوییم؟

قبل از دانستن دنباله‌ی خفن باید تعریف دنباله‌ی چراهام پل را بدانید. فرض کنید که یک دنباله از اعداد طبیعی مانند aa داشته باشیم. از روی این دنباله یک دنباله از اعداد حسابی به نام tt به این صورت می‌سازیم که tit_i برابر است با تعداد aja_j ها به صورتی که:

  • iji \neq j
  • gcd(ai,aj)=1gcd(a_i,a_j) = 1

برای مثال اگر دنباله‌ی aa ما [1,3,6]\left[1, 3,6 \right] باشد، دنباله‌ی tt، [2,1,1]\left[2, 1, 1 \right] می‌باشد. در این جا می‌گوییم دنباله‌ی tt دنباله‌ی چراهام پل دنباله‌ی aa است.

اکنون به دنباله‌ی خفن باز می‌گردیم؛ یک دنباله از اعداد حسابی خفن است اگر و تنها اگر که بتوان آن را به صورت دنباله‌ی چراهام پل حداقل 13811381 دنباله از اعداد طبیعی نوشت؛ یعنی یک دنباله از اعداد حسابی مانند zz خفن است اگر و تنها اگر حداقل 13811381 دنباله از اعداد طبیعی مانند tmptmp وجود داشته باشد که دنباله‌ی چراهام پل tmptmp، دنباله‌ی zz باشد. برای مثال دنباله‌ی [2,1,1]\left[2, 1, 1 \right] یک دنباله‌ی خفن است.

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

یک‌دنباله از اعداد حسابی (که ممکن است خفن نباشد) به شما می‌دهیم. شما باید حداکثر تعداد دنباله‌های زیرینه‌ی دو به دو متفاوت از این دنباله را بگویید که خودشان خفن هستند!

توجه کنید که دو دنباله‌ی aa و bb متفاوت هستند اگر و تنها اگر ai\sum a_i با bi\sum b_i متفاوت باشد.

هم چنین دنباله‌ی aa زیرینه‌ی دنباله‌ی bb است، اگر و تنها اگر سه شرط زیر برقرار باشد:

  1. دنباله‌ی aa و bb متفاوت باشند.
  2. داشته باشیم a=b|a| = |b|
  3. به ازای هر 1ia1 \leq i \leq |a| داشته باشیم aibia_i \leq b_i

ورودی🔗

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

در خط بعد nn عدد حسابی داده می‌شود که دنباله‌ی داعشی‌ها است. (یعنی دنباله‌ی aa) 1n30001 \leq n \leq 3000 0ai109 0 \leq a_i \leq 10^{9}

خروجی🔗

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

مثال🔗

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

3
2 2 1
Plain text

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

3
Plain text

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

3
1 0 1
Plain text

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

1
Plain text

توضیح🔗

برای مثال اول، یک راه برای نوشتن دنباله‌های دو به دو متفاوت زیرینه‌ی خفن به این صورت است:

[2,1,1]\left[2, 1, 1 \right] [1,1,0]\left[1, 1, 0 \right] [0,0,0]\left[0, 0, 0 \right]

هم‌چنین برای مثال دوم، تنها دنباله‌ی زیرینه‌ی خفن دنباله‌ی ورودی،

[0,0,0]\left[0, 0, 0 \right]

می‌باشد.

مسئله‌ی q مرد خشمگین!


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

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

توضیح تصویر

هنگام ورود به تهران، وقتی که چرزه و پشمک دیگر فکر می‌کردند که کارشان را با موفقیت انجام داده‌اند، ناگهان qq مرد خشمگین ظاهر شدند و از آن دو (که دیگر حسابی معروف شده‌بودند!) خواستند که بهشان یادگاری بدهند. چرزه و پشمک که می‌دانستند اگر یادگاری ندهند، حتما می‌میرند، بنابراین تصمیم گرفتند که یک دنباله از اعداد طبیعی به طول nn به عنوان یادگاری به آن ها بدهند. وقتی که چرزه و پشمک این را به آن qq مرد خشمگین گفتند، هرکدام از آن ها یک خواهش از چرزه و پشمک کردند. هر خواهش با سه عدد ll و rr و kk بیان می شود و این بدین معنا است که آن فرد خشمگین می‌خواهد که آنتروپرولارت دنباله‌ی al,al+1,al+2,...,ara_l, a_{l+1}, a_{l+2}, ..., a_r دقیقا برابر با kk باشد. (فرض کنید که دنباله‌ی aa، یادگاری چرزه و پشمک باشد.)

توجه کنید که آنتروپرولارت یک دنباله، برابر با کمینه‌ی تعداد زیردنباله‌هایی است که این شرایط را رعایت بکنند:

  1. هر عضو از دنباله در دقیقا یکی از زیردنباله‌ها باشد.

  2. اعداد هر زیردنباله به ترتیب اکیدا صعودی باشند.

برای مثال آنتروپرولارت دنباله‌ی [5,7,2,3,1]\left[5, 7, 2, 3, 1 \right] برابر با 33 می‌باشد و زیردنباله‌های متوالی عبارت هستند از:

[5,7],[2,3],[1]\left[5, 7\right], \left[2, 3 \right], \left[1 \right]

چرزه و پشمک می‌دانند که محبوبیت آنتروپرولارت جوری است که اگر به این خواهش‌ها توجه نشود، آن افراد آن‌ها را خواهند کشت. (این اصل به عنوان یک اصل معروف در کتاب زمینه‌ی جامعه شناسی اگ برن و نیم کف آورده‌شده‌است!) بنابراین آن ها تصمیم دارند که دنباله‌ای بسازند که به تمام این خواهش‌ها توجه شود. هم چنین از آن‌جایی که احتمالا تا الان فهمیده‌اید پشمک و چرزه کمی تنبل هستند و حال ندارند اعداد بزرگ را بنویسند بنابراین آن‌ها دنباله‌ای را با این شرایط می‌خواهند که max1iaai\max_{1 \leq i \leq |a|} a_i کمینه باشد. اما آن ها وقت ندارند که دنباله را خودشان بنویسند بنابراین ...

ورودی🔗

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

در qq خط بعد، در هر خط به ترتیب از چپ به راست سه عدد ll و rr و kk داده می‌شود که نمایانگر خواهش فرد ii ام است. 1n2001 \leq n \leq 200 1qn(n+1)21 \leq q \leq \frac{n*(n+1)}{2} 1lrn,1kn1 \leq l \leq r \leq n, 1 \leq k \leq n

خروجی🔗

اگر هیچ روشی برای درست کردن چنین دنباله‌ای نیست، عبارت -1 را چاپ کنید در غیر این‌صورت در یک خط nn عدد چاپ کنید که دنباله‌ای است که به تمام خواهش‌ها پاسخ بدهد و بزرگ‌ترین عدد در آن، کمینه‌ی ممکن باشد.

** از آن جایی که ممکن است برای یک حالت، چندین جواب وجود داشته باشد شما، یکی را به دلخواه چاپ کنید!**

مثال🔗

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

3 3
1 2 2
1 3 2
2 3 1
Plain text

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

1 1 2
Plain text

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

4 2
1 2 1
1 3 3
Plain text

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

-1
Plain text