آنچه در این نوشته می‌خوانید:
   •  مسئله Encrypted SMS
       »  ورودی برنامه
       »  خروجی برنامه

اعضای کمیته علمی ACM‌ امسال از ایمیل برای بحث در مورد سوالات استفاده می‌کنند. آنها می‌دانند که ایمیل ابزار امنی برای ارتباط در مورد چنین موضوعات حساسی نیست. بنابراین فایل‌های فشرده رمزگذاری شده را تبادل می‌کنند. برای تبادل کلمه عبور فایل نیز از SMS رمز شده با ساختار تایپ multi-tap استفاده می‌کنند.

روش multi-tap در حال حاضر (سال ۲۰۰۷) رایج‌ترین روش ورودی گوشی‌های تلفن است که فشار دادن یک یا چند باره یک کلید خاص، حرف مورد نظر ما را تولید می‌کند. به عنوان مثال، حروف B ،A و C به ترتیب با یک، دو و سه بار فشار دادن کلید 2 به دست می‌آیند.

  

Encrypted SMS

  

الگوریتم رمزکردن متن به این ترتیب است که برای تایپ حرف i-ام متن، کلید مربوط به آن حرف i بار بیشتر فشار داده می‌شود. مثلا اگر حرف چهارم U باشد، کلید 8 به جای دو بار، شش بار فشار داده می‌شود که خروجی آن حرف V است. در ضمن فرض کرده‌ایم که این صفحه‌کلید ارقام را تولید نمی‌کند.

کمیته علمی نیاز به برنامه‌ای دارد که متن پیام رمز شده را رمزگشایی کند. آنها فرصت برای انجام این کار ندارند و از شما کمک می‌خواهند! برنامه‌ای بنویسید که متن رمز شده را دریافت کرده و کلمه عبور (متن رمزگشایی شده) را چاپ کند.

  

ورودی برنامه

  [برگرد بالا]

ورودی برنامه از چند ورودی مسئله تشکیل می‌شود و هر ورودی یک رشته از کاراکترهای متشکل از حروف انگلیسی بزرگ و کوچک با حداکثر طول 100 است. انتهای ورودی با کاراکتر # مشخص می‌شود.

BACE

GgaudQNS

#

  

خروجی برنامه

  [برگرد بالا]

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

ABCD

IhateSMS

  

Link: ACM-ICPC Live Archive, 4095 - Encrypted SMS

مسعود اقدسی فام

مسعود اقدسی فام هستم.

دانش‌آموخته‌ی علوم کامپیوتر و فعال حوزه‌های علم داده و یادگیری ماشین؛ علاقه‌مند به یاد دادن و یاد گرفتن :)

algs.ir/spwq461     اشتراک‌گذاری در LinkedIn     اشتراک‌گذاری در Twitter     ارسال با Telegram
آخرین نوشته‌ها
       ✦   الگوریتم آنلاین
نوشته‌های پرمخاطب
  • 1
  • 2
  • 3
  • 4
  • 5

نام: *  

پست الکترونیک (محرمانه):

متن پیام: *  

01 02 06 07 08 09 10 11 12 13 14

• امیرحسین
جمعه، ۱۰ اسفند ماه ۱۳۹۷، ساعت ۲۳:۵۶

خیلی ممنون که این رو گذاشتید.

با پایتون اینو نوشتم. ساده بود. البته چون پایتون بلد نبودم یکم طول کشید04