کِوین و اعداد باینری


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

کِوین از کودکی علاقه‌ی زیادی به اعداد باینری (صفر و یکی) داشته‌است، این داستان یکی از کار‌هایی است که او با آن‌ها می‌کرده‌است.

اگر رشته باینری را به صورت s1,s2,...,sns_1,s_2,...,s_n نشان‌دهیم و nn برابر طول آن باشد، زیبایی رشته برابر تعداد ۴ تایی‌های si,sj,sk,sls_i,s_j,s_k,s_l که هر کدام یک بیت (یا صفر یا یک است) از رشته‌اند که 1i<j<k<ln1\le i<j<k<l \le n و si and sj=sj or sk=sk nand sl=sl xor si s_i \ and \ s_j \; = \; s_j \ or \ s_k \; = \; s_k \ nand \ s_l \; = \; s_l \ xor \ s_i است.

کوِین به شما رشته‌ی باینری ss را داده‌است، زیبایی آن را بدست آورید.

به دلیل این که زیبایی رشته‌ی ss می‌تواند زیاد باشد. باقی‌مانده‌ی تقسیم زیبایی آن را بر 109+7 10^9+7 چاپ کنید.

برای آشنایی با عملگر‌های بیتی اینجا را بخوانید.

ورودی🔗

در تنها خط ورودی رشته‌ی ss داده می‌شود. دقت کنید که ss می‌تواند با صفر شروع شود. 4s500 0004 \le |s| \le 500 \ 000

منظور از s|s| طول رشته‌ی ss است.

خروجی🔗

در تنها خط خروجی باقی‌مانده‌ی تقسیم زیبایی رشته‌ی ss را بر 109+7 10^9+7 را چاپ کنید.

مثال🔗

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

1010101
Plain text

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

2
Plain text

توضیح: چهار‌تایی‌ها‌ی s1,s3,s4,s6s_1,s_3,s_4, s_6 و چهار تایی s1,s3,s5,s6s_1,s_3,s_5,s_6 معتبر اند.

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

01100100
Plain text

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

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