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

زبان برنامه‌نویسی Bython که به تازگی عرضه شده است، فقط دستورات زیر را دارد:

نام دستور فرم کلی دستور توضیح دستور
Assignment A = expression مقدار expression را در متغیر A ذخیره می‌کند.
Input ()voroodi یک عدد از ورودی می‌خواند و آن را بر می‌گرداند.
Print khoorooji(List) مقادیر موجود در List را به ترتیب چاپ می‌کند.
If Statement agar condition : A = expression در صورتی برقراری condition ، مقدار expression در متغیر A ذخیره می‌شود.

که در جدول بالا مقادیر condition ، List ، expression و متغیر به این صورت تعریف می‌شوند:

  • تعریف expression:

    • هر عدد ثابتی یک expression است. برای مثال اعداد ۲ و ۵، خود یک expression هستند.
    • مقدار ()voroodi به تنهایی یک expression است.
    • هر عبارتی به شکل A+BA + B و یا ABA - B که در آن، AA و BB می‌توانند متغیر و یا عدد ثابت باشند، یک expression است. برای مثال عبارت‌های A+DA + D و همچنین VAR+5VAR + 5 که در آن AA، DD و VARVAR متغیر هستند، یک expression اند.
    • باقی عبارات expression نیستند. برای مثال مقادیر A+B+CA + B + C و یا A×BA \times B یک expression نیستند.
  • تعریف List:

    • عبارت AA که در آن AA متغیر و یا عدد ثابت است، یک لیست است.
    • اگر AA و BB دو List باشند، عبارت A,BA, B نیز یک List است.
    • برای مثال اگر AA و BB و DD متغیر باشند، عبارات 33 و AA و A,7A, 7 و همچنین 1,D,B1, D, B یک List هستند.
  • تعریف condition:

    • عبارت A==BA == B که در آن AA و BB متغیر و یا عدد ثابت هستند یک condition است.
    • در صورتی که مقادیر AA و BB برابر باشند، condition برقرار است و در غیر این صورت condition برقرار نیست.
    • برای مثال 3==33 == 3 یک condition است که برقرار است و عبارت A==5A == 5 که در آن مقدار AA هنگام اجرا ۶ است، یک condition است که برقرار نیست.
  • تعریف متغیر:

    • هر رشته‌ای از ترکیب اعداد ۰ تا ۹ و همچنین حروف کوچک و بزرگ الفبای انگلیسی به طول حداکثر ۱۰ که با عدد شروع نشود، یک متغیر است.
    • برای مثال عبارات AA، VAR2VAR2 و ABC123deABC123de یک متغیراند در صورتی که عبارات VAR3VAR_3، 3VAR3VAR و VARIABLE123VARIABLE123 متغیر نیستند.

حال به شما دنباله‌ای از دستورات زبان Bython و همچنین دنباله‌ای از مقادیر ورودی داده شده است و از شما خواسته شده است تا خروجی را گزارش کنید. و پس از آن، تعداد متغیرهایی که حداقل یک بار مقداردهی شده‌اند را نیز چاپ کنید.

ورودی

ورودی شامل دو بخش است که در بخش اول دستورات برنامه در چند خط آمده است و پس از آن در یک خط رشته‌ی ----- آمده است سپس ورودی‌های برنامه، هر کدام در یک خط آمده است.

تعداد خط‌های دستورات از ۵۰ بیشتر نخواهد بود.

تضمین می‌شوند تعداد ورودی‌های برنامه برابر با تعداد دستورهای Input است و همچنین هر متغیر قبل از استفاده مقداردهی می‌شود.

تمام اعداد داده شده در دستورات، اعداد طبیعی و مثبت خواهند بود، اما ممکن است در هنگام اجرای دستورات، مقدار متغیری منفی شود.

خروجی

در خروجی، به ازای هر دستور Print خروجی آن را در یک خط چاپ کنید. سپس در یک خط، تعداد متغیرهایی که حداقل یکبار مقداردهی شده‌اند را خروجی دهید.

تضمین می‌شود حداقل یک دستور Print در دستورات برنامه وجود دارد.

زیرمسئله‌ها

زیرمسئله نمره محدودیت‌ها
۱ ۱۰ فقط دستور Assignment و Print موجود است و در دستور Print تنها یک ورودی داریم.
۲ ۳۰ دستور If Statement نداریم.
۳ ۶۰ بدون محدودیت

مثال

ورودی نمونه ۱

A = 3
B = voroodi()
C = A + B
khoorooji(10)
khoorooji(C, 2)
-----
3
Plain text

خروجی نمونه ۱

10
6 2
3
Plain text

مقدار متغیر CC پس از اجرای دستورات برابر ۶ خواهد بود و تعداد متغیرهایی که حداقل یکبار مقداردهی شده‌اند برابر با ۳ است. (متغیرهای AA و BB و CC)

ورودی نمونه ۲

A = voroodi()
agar A == 2 : A = A + 2
khoorooji(A)
-----
2
Plain text

خروجی نمونه ۲

4
1
Plain text

مقدار متغیر AA پس از اجرای دستورات برابر ۴ خواهد بود و تعداد متغیرهایی که حداقل یکبار مقداردهی شده‌اند برابر با ۱ است. (متغیر AA)

ورودی نمونه ۳

agar 2 == 2 : A = 3
agar 3 == 4 : B = 1
khoorooji(A)
-----
Plain text

خروجی نمونه ۳

3
1
Plain text

مقدار متغیر AA پس از اجرای دستورات برابر ۳ خواهد بود و تعداد متغیرهایی که حداقل یکبار مقداردهی شده‌اند برابر با ۱ است. (متغیر AA)


ارسال پاسخ برای این سؤال
فایلی انتخاب نشده است.