برای رشتهی دودویی a1a2...an (که در آن ai، ۰ یا ۱ است) تابع f را به این صورت تعریف میکنیم: f(a1a2...an)=b1b2...bn−1، که در آن bi=aixorai+1. پس fm یک رشتهی n بیتی، یک رشتهی n−m بیتی تولید میکند. یک آدم علاف از ما خواست برنامهای بنویسیم که با دریافت رشتهی n بیتی S و مقدار m، fm(S) را حساب کند. ما هم دیدیم زورمان فقط به شما میرسد. مسئله را دادیم برای امتحان شما. انشاا… که به گندگی خودتان ببخشید.
در سطر اول فایل ورودی به ترتیب اعداد n و m آمدهاند و در سطر دوم آن ⌈n4⌉ رقم در مبنای ۱۶ داده شدهاند که رقم i ام آن نشاندهندهی مقدار دودویی (a4i+1a4i+2a4i+3a4i+4)2 در مبنای ۱۶ است. آخرین رقم در ورودی شامل 3−(nmod4) بیت بی معنی است که با صفر کردن بیتهای با ارزش کمتر آن (در مبنای ۲) مشخص شدهاند. ( 1≤m<n≤107)
فایل خروجی باید شامل دقیقا ⌈n−m4⌉ رقم مبنای ۱۶ به همان فرمت ورودی باشد که نشاندهندهی fm رشتهی ورودی است. 3−(n−m)mod4 بیت بیمعنی رقم آخر را مثل ورودی برابر صفر قرار دهید.