Skip to content

Latest commit

 

History

History
63 lines (41 loc) · 2.16 KB

caesar-cipher.md

File metadata and controls

63 lines (41 loc) · 2.16 KB
  • محدودیت زمان: ۱ ثانیه
  • محدودیت حافظه: ۲۵۶ مگابایت

ژولیوس که خیلی به پیام دادن و رمزنگاری علاقه دارد تصمیم می‌گیرد کاری کند که فقط خودش و دوستش بتوانند پیام‌هایشان را بخوانند؛ پس ساده‌ترین کاری که به ذهنش می‌رسد این است که به‌جای هر کاراکتر از ۵ کاراکتر جلوتر استفاده کند! (برای مثال به‌جای a از f استفاده کند.)

ولی از آنجایی که خودش و دوستش آدم‌های تنبلی هستند از شما می‌خواهد با تعریف تابع encode برای رمزنگاری متن و تابع decode برای تبدیل متن رمزی به متن عادی، این کار را برای او انجام دهید.

محدودیت

پیاده‌سازی دو تابع خواسته شده در متن سؤال الزامی است.

راهنمایی

برای دریافت رشته موجود در هر خط می‌توانید از کد زیر استفاده کنید.

getline(cin >> ws, s);

که در آن s متغیری از جنس رشته است.

ورودی

ورودی شامل دو خط است که در خط اول نوع استفاده از برنامه (encode یا decode) و در خط دوم عبارت مورد نظر (برای رمزنگاری یا رمزگشایی) وارد می‌شود. تضمین می‌شود که طول رشته ورودی بیشتر از ۱۰۰ کاراکتر نیست.

خروجی

خروجی برنامه رشته رمزنگاری شده یا رمزگشایی شده است که در یک خط می‌آید.

مثال

ورودی نمونه ۱

encode
hello world!

خروجی نمونه ۱

mjqqt%|twqi&

ورودی نمونه ۲

decode
ymnx%nx%f%xnruqj%yj}y

خروجی نمونه ۲

this is a simple text