لینک‌های مفید برای شرکت در مسابقه:

راهنمایی‌ها بزودی با زمان‌بندی زیر به پایین صورت سوال‌ها اضافه می‌شود.

  • سری اول: جمعه ۱۵ آذر، ساعت ۱۹. (اضافه شد!)
  • سری دوم: دوشنبه ۱۸ آذر، ساعت ۱۹. (اضافه شد!)

می‌توانید سوالات خود را از قسمت سوال بپرسید مطرح کنید.

اعداد تپه‌ای


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

فردا تولد حیدریه!

به همین دلیل دوست حیدری حال ندارد برای این سوال داستان بنویسد.

یک عدد را حیدری-تپه‌ای می‌نامیم اگر ارقام آن از چپ به راست تا یک جایی کوچک نشوند (می‌توانند بزرگ شوند و یا ثابت بمانند) سپس از آن‌جا به بعد بزرگ نشوند (می‌توانند کوچک شوند و یا ثابت بمانند).

برای مثال اعداد ۱۲۲۳۴۴۲۱، ۱۲، ۳۵۷، ۵۴۱ و ۱۲۳۲۱ حیدری-تپه‌ای هستند ولی اعداد ۱۲۳۲۱۳، ۱۰۱ و ۳۷۳۵ حیدری-تپه‌ای نیستند.

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

ورودی🔗

در خط اول ورودی TT تعداد اعداد داده می‌شود.

سپس در TT خط بعدی در هر خط یک عدد حداکثر ۷۰ رقمی به شما داده می‌شود.

خروجی🔗

در TT خط جواب سوال را چاپ کنید.

تضمین می‌شود همیشه جواب در متغیر ۶۴-بیتی جا می‌شود.

مثال🔗

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

5
10
55
101
1000
1234321
Plain text

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

10
55
-1
715
94708
Plain text

راهنمایی ۱

به کمک برنامه نویسی پویا جواب سوال را پیدا می‌کنیم. dp[i][j][2] را تعریف می‌کنیم: چند عدد ii رقمی داریم که رقم آخر آن‌ها برابر jj است. بعد سوم dp نشان‌دهنده آن است که آیا تا به الان کوچک شدن رقم‌های عدد ما آغاز شده است یا خیر.

در راهنمایی بعدی، بروز شدن dp دقیق‌تر توضیح داده می‌شود.

راهنمایی ۲

برای به‌روز کردن دی‌پی رقم آخر عددمان را فیکس میکنیم.

حال اگر در استیتی باشیم که ii رقم داشته باشیم و رقم آخر عددمان jj تعیین شده باشد با ۲ حالت زیر روبه‌رو هستیم:

حالت اول:

کوچک شدن ارقام عددمان شروع شده است (بعد سوم دی‌پی ۱ باشد) در این صورت دی‌پی ما برابر جمع دی‌پی اعداد i1i -1 رقمی است که رقم آخرشان بزرگ‌تر یا مساوی jj باشد.

حالت دوم:

کوچک شدن ارقام اعدادمان شروع نشده است (بعد سوم دی‌پی ۰ باشد) در این صورت دی‌پی ما برابر جمع دی‌پی اعداد i1i -1 رقمی است که رقم آخرشان کوچک‌تر یا مساوی jj باشد.

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

ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.