logo title

نحوه شرکت

هر شرکت کننده باید در ربات تلگرام به آیدی yaldaaacodebot@ ثبت نام کند تا ورودی مجزای خود را از ربات دریافت کند.

در نهایت جواب خود را که یک بیت شعر است به همان ربات میفرستد، ربات اطلاعات شرکت کننده را در دیتایس خود ذخیره میکند و ادمین های مربوطه بعدا به آن شخص پیام میدهند.

⚠ در صورت دادن جواب صحیح لطفا از ربات خارج نشوید

مسابقه از ۲۹ آذر (سه شنبه) شروع شده و تا ۲ دی (جمعه) ادامه دارد.

مسئله

حمید و محمدحسن دو دوست صمیمی بودند که در دانشگاه شاهد تهران در دوره کارشناسی با هم آشنا شدند. محمدحسن بعد از دوره کارشناسی، به دانشگاه Oxford آمریکا apply کرده و از ایران میرود. حمید اما در همان دانشگاه ادامه تحصیل میدهد.

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

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

به محمدحسن کمک کنید با استفاده از log file تولیدی توسط ویروس، متن بهم ریخته را به حالت اولیه برگرداند و حمید نیز از انتظار برای جواب محمدحسن، دق مرگ نشود.

مثال ۱

فرض کنید که متن ایمیل " ایمهنم " بوده و فایل log ای که ویروس تولید کرده به این صورت باشد:

3 0 2 1 5 4 0 4 2 3 5 1

کار شما این است که الگوهای تبدیلی که توی فایل log هست رو روی متن ایمیل به صورت برعکس اعمال کنید تا به کلمه اول ( " مهمانی " ) که همان جواب مسئله است، برسید!

تصویری از روش کار

مثال ۲

ورودی ها:

متن ایمیل

فایل log تولیدی توسط ویروس

دبا یلش
1 5 4 6 3 2 0 6 5 1 3 2 0 4 0 2 3 5 4 6 1 0 6 3 2 4 5 1 6 2 3 1 5 4 0

روند به این صورته:

متن در هر مرحله

الگو

توضیحات

دبا یلش
متن ایمیل
ش بالید
6 2 3 1 5 4 0
بعد از برگرداندن از آخرین بهم ریختگی (۵)
شدابلی
0 6 3 2 4 5 1
بعد از برگرداندن از بهم ریختگی ۴
ش دالبی
0 2 3 5 4 6 1
بعد از برگرداندن از بهم ریختگی ۳
بدلای ش
6 5 1 3 2 0 4
بعد از برگرداندن از بهم ریختگی ۲
شب یلدا
1 5 4 6 3 2 0
بعد از برگرداندن از بهم ریختگی ۱

خروجی: شب یلدا

نکات

اگر از زبان های سطح پایین مثل (مانند C یا ++C ) استفاده میکنید، حتما باید توجه داشته باشید که حروف فارسی در ۲ تا char ذخیره میشوند (برای حل این مشکل میتوانید هر حرف را در string یا wide_char ذخیره کنید ). اما در زبان های سطح بالا (مثل Python یا JavaScript یا Java) درصورتی که از نوع داده string استفاده کنید، لازم نیست توجهی به این موضوع کنید.

ℹ برای اطلاعات بیشتر در این خصوص، مقاله UTF-8 که توسط انجمن علمی نوشته شده را بخوانید.

اندازه فایل های log در حدود ۸۰ تا ۱۰۰ خط است.

یادداشت ها

ایده گرفته شده از مسابقه برنامه نویسی Advent Of Code .