Processing math: 100%

المپدیا

دانش‌نامه‌ی المپیاد کامپیوتر ایران

ابزار کاربر

ابزار سایت


سوالات المپیاد:دوره ی انتخاب تیم:دوره ی ۱۳:سوال ۲

تابع بله

برای رشته‌ی دودویی a1a2...an (که در آن ai، ۰ یا ۱ است) تابع f را به این صورت تعریف می‌کنیم: f(a1a2...an)=b1b2...bn1، که در آن bi=aixorai+1. پس fm یک رشته‌ی n بیتی، یک رشته‌ی nm بیتی تولید می‌کند. یک آدم علاف از ما خواست برنامه‌ای بنویسیم که با دریافت رشته‌ی n بیتی S و مقدار m، fm(S) را حساب کند. ما هم دیدیم زورمان فقط به شما می‌رسد. مسئله را دادیم برای امتحان شما. ان‌شاا… که به گندگی خودتان ببخشید.

ورودی

در سطر اول فایل ورودی به ترتیب اعداد n و m آمده‌اند و در سطر دوم آن n4 رقم در مبنای ۱۶ داده شده‌اند که رقم i ام آن نشان‌دهنده‌ی مقدار دودویی (a4i+1a4i+2a4i+3a4i+4)2 در مبنای ۱۶ است. آخرین رقم در ورودی شامل 3(nmod4) بیت بی معنی‌ است که با صفر کردن بیت‌های با ارزش کم‌تر آن (در مبنای ۲) مشخص شده‌اند. ( 1m<n107)

خروجی

فایل خروجی باید شامل دقیقا nm4 رقم مبنای ۱۶ به همان فرمت ورودی باشد که نشان‌دهنده‌ی fm رشته‌ی ورودی است. 3(nm)mod4 بیت بی‌معنی رقم آخر را مثل ورودی برابر صفر قرار دهید.

ورودي و خروجي نمونه

ورودي نمونه خروجي نمونه
26 9
723b5d8
dbab0

توضیح نمونه: f9(01110010001110110101110110)=11011011101010110


ابزار صفحه