حفظ ترتیب


فرض کنید به شما دو دنباله داده شده است و شما مسئول آن هستید که ببینید آیا ترتیب کاراکترها در دنباله دوم، همان ترتیب در دنباله اول است یا خیر؟ کافیست از راست یا از چپ ترتیب حفظ شود.

مثلاً اگر دنباله اول abcdefghi و دنباله دوم bfhi باشد، ترتیب از چپ به راست در اولی حفظ شده است. مثالی دیگر که ترتیب را از راست به چپ حفظ کند، دنباله اول abcdefghi و دنباله دوم gfdb است که ترتیب آمدن اعضای دنباله دوم در اولی از راست به چپ است و ترتیب را حفظ کرده است.

مثالی بزنیم که ترتیب را نه از راست به چپ و نه از چپ به راست، حفظ نکرده باشد. دنباله اولی ‫‪abcdefghi‬‬ و دنباله دومی ‫‪bgic‬‬.

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

توجه: ممکن است در دنباله دوم کاراکتری بیاید که در اولی نیست. روشن است که در این صورت پاسخ منفی است و ترتیب حفظ نشده است.

توجه: ممکن است از هر کاراکتر به هر تعداد موجود باشد. کافی‌ست در یکی از حالات ترتیب حفظ شده باشد تا پاسخ مثبت باشد. برای مثال اگر دنباله اول ‫‪abacdfeag‬‬ و دنباله دوم bca باشد ترتیب حفظ شده است (با در نظر گرفتن آخرین a).

ورودی🔗

در خط اول به شما عدد 1n101\leq n \leq 10 داده می‌شود که nn بیان‌گر تعداد زوج‌های دنباله‌هاست. سپس به ازای هر زوج دنباله، در یک خط دنباله اول و در خط بعدی دنباله دوم می‌آید.

خروجی🔗

به ازای هر زوج دنباله اگر ترتیب حفظ شده است، YES وگرنه NO را چاپ کنید.

ورودی نمونه🔗

5
abcdefghi
dfge
abcdefghi
hcba
qwer
asdf
qwkedlrfid
kelid
abacdfeag
bca
Plain text

خروجی نمونه🔗

NO
YES
NO
YES
YES
Plain text

آدرس‌یابی


سامانه Quera دارای nn صفحه است و آدرس (URL) هرکدام از این صفحات، از الگوی مشخصی پیروی می‌کند. به عنوان مثال آدرس صفحه معرفی یک شرکت (در بخش شرکت‌ها و فرصت‌های شغلی)، الگوی زیر را دارد:

https://quera.ir/careers/company/<company_name>
Plain text

که به جای <company_name> نام شرکت قرار می‌گیرد. مثلاً آدرس صفحه معرفی تیم هدهد در Quera به این صورت است:

https://quera.ir/careers/company/hodhod

الگوی آدرس یک سؤال در بانک سؤالات دارای بیش از یک پارامتر است:

https://quera.ir/problemset/<category>/<problem_id>
Plain text

بنابراین آدرس سؤالی با شناسه ۷۲۵ در دسته سؤالات المپیاد برابر این مقدار است:

https://quera.ir/problemset/olympiad/725

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

https://quera.ir/overview
Plain text

روشن است که با هر پارامتری، آدرس تولیدشده از این الگو برابر با https://quera.ir/overview است.

می‌خواهیم با داشتن نام صفحات و مقادیر پارامترهای موجود در الگوی آدرس صفحات، آدرس دقیق صفحات را به دست آوریم.

ورودی🔗

در خط اول ورودی، عدد nn می‌آید (1n201 \leq n \leq 20). در nn خط بعد، در هر خط نام یک صفحه (با طول حداکثر ۱۰) و الگوی آدرس آن صفحه (با طول حداکثر ۱۰۰) با یک فاصله می‌آیند. نام صفحات از حروف کوچک انگلیسی تشکیل شده‌اند.

سپس در خط بعدی عدد tt می‌آید (1t501 \leq t \leq 50). در tt خط بعدی، در هر خط نام یک صفحه و مقادیر پارامترها به شکل parameter=value می‌آیند. توجه کنید که ممکن است یک یا چند تا از پارامترهای موردنیاز برای ساختن آدرس دقیق، داده نشده باشد. همچنین ممکن است یک یا چند پارامتر اضافی (که موردنیاز نیست) داده شده باشد.

نام پارامترها، از حروف کوچک و بزرگ انگلیسی و _ (underline) تشکیل شده است. نام و مقادیر پارامترها حداکثر ۱۰۰ حرف هستند.

خروجی🔗

در tt خط، مقادیر دقیق آدرس‌های خواسته‌شده را بنویسید.

در هر مورد، اگر نام صفحه خواسته‌شده در لیست صفحات وجود ندارد، خطای زیر را بنویسید:

[Error] url not found
Plain text

همچنین اگر مقدار یک یا چند پارامتر موردنیاز داده نشده است، خطای زیر را بنویسید:

[Error] missing parameter(s)
Plain text

و اگر پارامتری اضافه داده شده (جزء پارامترهای مورد نیاز نیست)، آن را نادیده بگیرید.

مثال ورودی🔗

4
company https://quera.ir/careers/company/<company_name>
problemset_problem https://quera.ir/problemset/<category>/<problem_id>
overview https://quera.ir/overview
test a/<b>/c
9
company company_name=torob
company company_name=!@#
problemset_problem category=olympiad problem_id=725
problemset_problem category=university problem_id=719
problemset_problem problem_id=719
overview
overview a=b
test b=z
TEST
Plain text

خروجی نمونه🔗

https://quera.ir/careers/company/torob
https://quera.ir/careers/company/!@#
https://quera.ir/problemset/olympiad/725
https://quera.ir/problemset/university/719
[Error] missing parameter(s)
https://quera.ir/overview
https://quera.ir/overview
a/z/c
[Error] url not found
Plain text

شریف‌نورد


دانشکده‌ی هوافضا به تازگی از فضاپیمای «شریف نورد» رونمایی کرده است. این فضاپیما دارای nn صندلی است که به صورت دوری چیده شده‌اند و به صورت ساعت‌گرد روی آنها شماره‌های ١ تا nn نوشته شده است. قرار است در پروازی آزمایشی همه‌ی nn دانشجوی دانشکده‌ی هوافضا با این فضاپیما سفر کنند.

هرکدام از دانشجویان این دانشکده یک شماره دانشجویی یکتا از ١ تا nn دارد. مسئول این پرواز آزمایشی، به هر یک از دانشجویان یک کارت داده که روی هر کدام از آنها یک شماره از ١ تا nn نوشته شده است. در هنگام پرواز همه‌ی دانشجویان به ترتیب شماره دانشجویی وارد «شریف نورد» شده و هر کس کارتی که در دستش هست را نگاه می‌کند و به سراغ صندلی با آن شماره می‌رود. اگر آن صندلی خالی بود روی آن می‌نشیند وگرنه cc صندلی در جهت ساعت‌گرد جلو می‌رود. اگر صندلی جدید خالی بود می‌نشیند و اگر خالی نبود باز cc صندلی در جهت ساعت‌گرد جلو می‌رود. او آن قدر این کار را تکرار می‌کند تا به یک صندلی خالی برسد. سپس آنجا می‌نشیند.

مثللاً اگر cc برابر ٣ باشد و nn برابر ٧ باشد و صندلی ۵ و ١ پر باشند، کسی که بخواهد روی صندلی ۵ بنشیند به جای این که روی ۵ بنشیند روی ۴ مینشیند.

شریف‌نورد

مسئول پرواز پس از اینکه همه نشستند برای اینکه به همه نشان دهد باهوش است تصمیم گرفته است بدون این که به صندلی‌ها نگاه کند بگوید هر دانشجویی روی کدام صندلی نشسته است. اما او دید این کار سخت است و آن قدر هم باهوش نیست. لذا از شما درخواست کمک کرده است.

ورودی🔗

در خط اول به ترتیب nn و mm و cc می‌آید. (m,n100m,n \leq 100 و 1cn11 \leq c \leq n-1 و mnm \leq n)

سپس در خط بعد nn عدد می‌آید که عدد ii ام، عدد کارت دانشجو با شماره دانشجویی ii را مشخص می‌کند. در خط بعد mm شماره‌ی دانشجویی از میان nn شماره‌ی دانشجویی موجود آمده است که شما باید بگویید هر یک بر روی چه صندلی ای نشسته‌اند (به همان ترتیبی که این mm عدد آمده اند.) در این mm عدد ممکن است اعداد تکراری نیز وجود داشته باشد.

خروجی🔗

اگر امکان نشستن همه‌ی افراد وجود نداشت، در خروجی تنها کلمه‌ی Impossibe را چاپ کنید. در غیر این صورت شما باید mm عدد چاپ کنید که شماره صندلی‌های افرادی است که سوال شده‌اند.


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

5 4 2
5 1 5 2 5
4 1 3 5
Plain text

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

4 5 2 3 
Plain text

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

6 2 2
3 5 1 1 1 1
1 2
Plain text

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

Impossible
Plain text

دور باستان


در آخرین اکتشافات باستان‌شناسان در سرزمین «کهن»، یک دفترچه بسیار مرموز پیدا شده است. طی تحقیقات بسیار مشخص شد که این دفترچه، دفترچه خاطرات رستم است. پس از ناکام ماندن تلاش باستان‌شناسان برای خواندن خاطرات رستم، مشخص شد که رستم از بیم خوانده شدن خاطراتش، متن این دفترچه را با الگوریتمهای بسیار پیچیده رمزنگاری کرده است و کلید این رمز را در یکی از اهرام «دور» قرار داده است.

این کلید امروزه تحت تدابیر شدید امنیتی در موزه «دور باستان» نگهداری می‌شود و این موزه به هیچ وجه حاضر نیست این کلید را در اختیار باستان‌شناسان سرزمین «کهن» قرار دهد.

پس از اصرارهای زیاد باستان‌شناسان «کهن»، موزه «دور باستان» حاضر شد این کلید را در اختیار آنها بگذارد. بنابراین درب سالن محل نگهداری این کلید را باز کرد تا بروند و این کلید را بردارند. اما باستان‌شناسان باهوش «کهن» متوجه شدند در مسیر درب سالن تا خود کلید تعدادی تله قرار داده شده است. آنها با تجهیزات پیشرفته‌ی خود، مکان این تله‌ها را پیدا کرده‌اند و اکنون می‌خواهند همه مسیرهای ممکن برای رسیدن به کلید را بررسی کنند و بهترین مسیر را انتخاب کنند.

راهروی موزه دور باستان

این سالن به شکل یک جدول 1×n1\times n است که در خانه‌ی شماره ۱، باستان‌شناسان «کهن» قرار دارند (با نماد B) و در خانه‌ی شماره nn، کلید قرار دارد (با نماد K) و در برخی از خانه‌های دیگر تله وجود دارد (با نماد T). اگر باستان‌شناسان وارد خانه‌ی تله‌دار بشوند، به پایین می‌افتند و خوراک کوسه‌ها می‌شوند.

باستان‌شناسان «کهن» در هر حرکت می‌توانند یکی از این سه کار را انجام دهند:

  • یک خانه به جلو بروند.
  • از خانه جلویی بپرند (مستقیماً به دو خانه جلوتر بروند.)
  • از دو خانه جلویی بپرند (مستقیماً به سه خانه جلوتر بروند.)

برنامه شما باید تعداد همه راه‌های ممکن برای رسیدن باستان‌شناسان به کلید را محاسبه کند.

ورودی🔗

در خط اول، عدد n می‌آید و در خط بعدی نقشه‌ی سالن به شکل یک رشته به طول nn از حروف B و T و K و . می‌آید. حرف . نماد خانه‌های خالی است. مقدار nn حداکثر ٢٠٠ خواهد بود.

خروجی🔗

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


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

21
B..T.T....TT.T.T....K
Plain text

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

198
Plain text

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

5
B..TK
Plain text

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

3
Plain text

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

30
B..T.....TT..T.T...TTT..T.T..K
Plain text

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

0
Plain text

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

50
B..T..T.T..TT...T.T..T.TT.T....T.T...TT.T..T....TK
Plain text

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

93312
Plain text

سینما


پس از رمز گشایی دفترچه خاطرات رستم، مشخص شد که پس از خوان هفتم و کشته شدن دیو سپید به دست رستم، رستم و سپاهش برای استراحت به سینما رفته‌اند.

چینش صندلی‌های سینما به صورت یک جدول n×nn \times n است و بعضی از صندلی‌ها خراب است. رستم و سپاهش وارد سینما شدند و روی صندلی‌های سالم نشستند (تعداد سربازان دقیقاً به اندازه تعداد صندلی‌های سالم بود.)

در هنگام پخش فیلم، هریک از سربازان در هر زمان در یکی از ۳ وضعیت زیر نسبت به فیلم قرار داشت:

  • بی‌خیال
  • متعجب (باخیال)
  • سؤال‌دار (باخیال)

اگر سربازان متعجب را با علامت !، سربازان سؤال‌دار را با ?، سربازان بیخیال را با _ (underline) و صندلی‌های خراب را با # نمایش دهیم، یک وضعیت از سربازان در سینما می‌تواند به این صورت باشد:

????___?
##_???_?
!!??#_??
!#__????
____!!!!
!!!___!!
_!!!!!!#
!!!?????
Plain text

مدت فیلم ۱۰۰۰ ثانیه بود. در طول پخش فیلم، سربازان در مورد فیلم با سربازان مجاور حرف می‌زدند و وضعیت سربازان در هر ثانیه نسبت به ثانیه قبل طبق قوانین زیر تغییر می‌کرد.

  • دو سرباز، مجاور محسوب می‌شوند اگر در جدول n×nn \times n، صندلی‌های آن‌ها در یک ضلع یا رأس، مشترک باشند. پس هر یک از صندلی‌های میانی سینما، ٨ صندلی مجاور دارد و هریک از ۴ صندلی گوشه‌ی سینما، ٣ صندلی مجاور دارد.
  • اگر در میان سربازان مجاور یک سرباز بی‌خیال، دقیقاً ۳ سرباز باخیال وجود داشته باشد، در ثانیه بعد، این سرباز نیز باخیال می‌شود (اگر اکثریت ۳ سرباز مجاور متعجب بودند، او نیز متعجب می‌شود و اگر اکثریت سؤال‌دار بودند، او نیز سؤال‌دار می‌شود.)
  • اگر در میان سربازان مجاور یک سرباز باخیال، کمتر از ۲ یا بیشتر از ۳ سرباز باخیال وجود داشته باشد، آن سرباز در ثانیه‌ی بعد بی‌خیال می‌شود.
  • اگر در میان سربازان مجاور یک سرباز متعجب، ۲ یا ۳ سرباز باخیال وجود داشته باشد، و در بین آن ۲ یا ۳ سرباز باخیال، تعداد سؤال‌دارها بیشتر از متعجب‌ها باشد، آن سرباز در ثانیه بعد سؤال‌دار می‌شود.
  • اگر در میان سربازان مجاور یک سرباز سؤال‌دار، ۲ یا ۳ سرباز باخیال وجود داشته باشد، و در بین آن ۲ یا ۳ سرباز باخیال، تعداد متعجب‌ها بیشتر از سؤال‌دارها باشد، آن سرباز در ثانیه بعد متعجب می‌شود.
  • اگر برای یک سرباز در یک مرحله هیچ یک از اتفاقات بالا نیفتاد، وضعیت آن سرباز نسبت به فیلم در ثانیه بعد تغییر نمی‌کند.

وضعیت سربازان را در شروع فیلم می‌دانیم. می‌خواهیم بدانیم در پایان فیلم (یعنی بعد از ۱۰۰۰ ثانیه) چه تعداد سرباز متعجب و چه تعداد سرباز سؤال‌دار هستند.

ورودی🔗

برنامه باید در ابتدا عدد nn را بخواند و سپس نقشه‌ی اولیه‌ی سینما را که به صورت یک جدول n×nn \times n است، بخواند. nn حداکثر ۵٠ خواهد بود. پس یک آرایه ۵٠ × ۵٠ برای ذخیره جدول کافی است.

خروجی🔗

در خط اول خروجی تعداد سربازان سؤال‌دار و در خط بعدی تعداد سربازان متعجب در انتهای فیلم را بنویسید.


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

8
????___?
##_???_?
!!??#_??
!#__????
____!!!!
!!!___!!
_!!!!!!#
!!!?????
Plain text

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

4
0
Plain text

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

30
??_???_?_?_?_#?_????_?____??__
_?__?_???_?_?#???__?_??_?_????
__???___???__#________________
________???__##!!!!!____?_____
________???__#________________
_____________#________________
_____________??_______________
______________________________
______________________________
______!!!!!____________??????_
______________________________
___________!?!?!?!?!!!________
_____######____#########______
________#_??????!!!!??________
________#_____________________
________#___________?!?!?!?!__
______________________________
_____________________________?
____________________________??
____!!!_______________#######?
____________________________??
_____________________________?
______________________________
____________________!!_!!_____
______________________________
______________!_______________
####_______#!!!!!_____________
#__!_!!!_!!!!!!!!!!!!_!!!_!___
#_!!!!!!!!!!!!!!!!!!!!!!!!!!__
#############!!!!!!!!!!!!!!!!_
Plain text

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

9
19
Plain text

مثالی از وضعیت سربازان در ۱۰۰۰ مرحله🔗

در شروع فیلم:

????___?
##_???_?
!!??#_??
!#__????
____!!!!
!!!___!!
_!!!!!!#
!!!?????
Plain text

ثانیه ۱:

_???__?_
##___?_?
!!?_#___
!#?_____
!__!?___
!_______
_______#
!______?
Plain text

ثانیه ۲:

__?___?_
##_?__?_
!_?_#___
!#!_____
!__?____
________
_______#
________
Plain text

ثانیه ۳:

________
##??____
__??#___
!#??____
_!______
________
_______#
________
Plain text

ثانیه ۴:

________
##??____
____#___
_#_?____
_!?_____
________
_______#
________
Plain text

ثانیه ۵:

________
##______
__??#___
_#?_____
__?_____
________
_______#
________
Plain text

ثانیه ۶:

________
##______
__??#___
_#?_____
________
________
_______#
________
Plain text

در ثانیه ۷ تا ۱۰۰۰ (تا پایان فیلم) وضعیت سربازان به این شکل ثابت است:

________
##______
__??#___
_#??____
________
________
_______#
________
Plain text

ترمیم یک خاطره


بخشی از دفترچه خاطرات رستم بر اثر گذشت زمان پوسیده و یکی از خاطرات او ناخوانا شده است. قصد داریم این خاطره‌ی رستم را ترمیم کنیم. برای این کار مجموعه‌ای از واژگان مورد استفاده‌ی رستم را از بقیه‌ی بخش‌های دفترچه استخراج کرده‌ایم و می‌خواهیم به کمک این واژه‌ها، واژه‌های ناقص این خاطره را حدس بزنیم.

می‌دانیم رستم در خاطرات خود، فقط از ٢۶ حرف الفبای باستانی آن زمان استفاده می‌کرده است. برای این که کار شما در گرفتن ورودی راحت باشد، ما به جای آن الفبا، از ٢۶ حرف کوچک الفبای انگلیسی استفاده می‌کنیم.

در این خاطره‌ی رستم، تعدادی از حروف پوسیده‌اند و به حروفی غیر از ٢۶ حرف الفبا تغییر کرده‌اند. بنابراین هر حرفی که به صورت یکی از ٢۶ حرف الفبا باقی مانده باشد، حتماً سالم مانده است.

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

مثلاً اگر مجموعه واژگان به صورت زیر باشد:

rostam, nabard, kolaahkhood, hastam, doshman, man, roodkhaane, sarzamin

می‌توان تشخیص داد که جمله‌ی m+2 =ost@| #as)2% در واقع man rostam hastam بوده است.

ورودی🔗

در خط اول ورودی عدد nn می‌آید. nn حداکثر ١٠٠٠ است.

در خط بعدی، مجموعه nn واژه مورداستفاده رستم در یک سطر می‌آید. این واژه‌ها با space جدا شده‌اند و فقط از حروف الفبای انگلیسی تشکیل شده‌اند و حداکثر طول هرکدام ٢٠ است. در بین آنها ممکن است واژه‌ای تکراری باشد. در خط بعدی، خاطره رستم که یک رشته با حداکثر ١٠٠٠٠ کلمه است می‌آید.

خروجی🔗

اگر ترمیم این خاطره ممکن نیست بنویسید not recoverable. اگر کلمه‌ای وجود دارد که به بیش از یک روش قابل ترمیم است فقط بنویسید multiple و در غیر این صورت خاطره‌ی ترمیم‌شده را بنویسید.


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

10
iran rostam the hame saraye ast blackboard doshman man jaye
h/-e *ay# ir[] s*r/@. m@# as)
Plain text

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

hame jaye iran saraye man ast
Plain text

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

7
this blackboard a shuttle is afrasiab framework
th#! *s afr@asi() bl$-------
Plain text

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

not recoverable
Plain text

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

6
mobile not responding sohrab hurt recoverable
/*- ===========
Plain text

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

not recoverable
Plain text

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

8
e turanzamin mar iranzamin doshman jadugar daryache man
m$( e jadu*/-
Plain text

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

multiple
Plain text

ماشین متنی


در این سوال از شما خواسته شده است تا یک ماشین متنی کوچک با مجموعه‌ای از قابلیت های ساده را پیاده‌سازی نمایید. روال کار بدین صورت است که در آغاز کار برنامه یک رشته متنی اولیه(به طول حداکثر 1000 کاراکتر) را از ورودی دریافت می‌کند. در ادامه تا زمانی‌ که دستور خروج را دریافت کند در هر نوبت کاربر درخواست یک عملیات بر روی رشته متنی می‌دهد. عملیات ها به شرح زیر تعریف شده‌اند:

دستور ورودی توضیحات و خروجی
SHIFT-R N تمام کاراکترهای عبارت را به صورت چرخشی N واحد به سمت راست منتقل می‌کند.
SHIFT-L N تمام کاراکترهای عبارت را به صورت چرخشی N واحد به سمت راست منتقل می‌کند.
EXTEND N به انتهای رشته موجود N کاراکتر جدید اضافه می‌کند و به عنوان مقدار پیشفرض کاراکترها، ستاره(*) قرار می‌دهد.
SHRINK N از انتهای رشته، N‌ کاراکتر حذف می‌کند. درصورتی که طول رشته کمتر از N‌ بود،‌رشته حاصل یک رشته خالی خواهد بود.
REVERSE رشته را معکوس می‌کند.
PUT I C حرف مکان Iام رشته را با حرف C جایگزین می‌کند.توجه داشته باشید که شماره مکان‌ها از یک آغاز می‌شود و I ‌همواره کوچکتر مساوی طول رشته خواهد بود.
PRINT رشته فعلی را چاپ می‌کند و به خط بعد می‌رود.
EXIT اتمام برنامه

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

void Extend( char *string, int _extendedLength);
Plain text

مثال:

ورودی نمونه ۱

initial string
PRINT
EXTEND 2
SHIFT-R 3
PRINT
PUT 3 o
REVERSE
SHRINK 2
PRINT
EXIT
Plain text

خروجی نمونه ۱

initial string
g**initial strin
nirts laitinio
Plain text

ورودی نمونه ۲

Test
PRINT
SHRINK 20
PRINT
EXTEND 2
PRINT
EXIT
Plain text

خروجی نمونه ۲

Test

**
Plain text

حمله به دور


دور مورد تهاجم گیگیلی‌ها قرار گرفته است. ارتش گیگیلی‌ها وارد دور شده و قصد دارد هر شهری را که می‌تواند غارت کند. بین شهرهای دور راه‌هایی کوهستانی با شیب‌های مختلف وجود دارد اما سربازان گیگیلی به دلیل تنبلی فقط راه‌هایی را انتخاب می‌کنند که در مجموع کمترین شیب ممکن را طی کنند! متاسفانه، فامیل دور، پادشاه دور با محدودیت سرباز مواجه است. پس تصمیم گرفته که سربازان خود را در شهرهای پراهمیت مستقر کند. او پس از مشورت با وزیران خود، جیگر و پسرعمه‌زا، به این نتیجه می رسد که شهری پر اهمیت است که تعداد زیادی از مسیرهایی که ارتش گیگیلی‌ها انتخاب می‌کنند از آن بگذرد.

حال شما باید به او کمک کنید و به او بگویید از هرشهر چه تعدادی از این مسیرها می‌گذرد.

ورودی🔗

در خط اول 1n1001 \leq n \leq 100 تعداد شهرها و 1m100001 \leq m \leq 10000 تعداد راه‌های کوهستانی بین شهرهاست. سپس در m خط بعدی در هر خط سه عدد w, j , i می‌آید که مشخص می کند از شهر iام به شهر jام مسیری کوهستانی با شیب w وجود دارد. توجه کنید که مسیرها یک‌طرفه می‌باشند.

خروجی🔗

در خروجی در سطر iام تعداد مسیرهایی که رأس iام روی آن‌ها قرار دارد نمایش داده می‌شود. توجه کنید که در محاسبه این مقدار مسیرهایی که راس i در ابتدا یا انتهای آن واقع است شمرده نمی‌شوند.

مثال🔗

نمونه ورودی

5 4
1 2 64030
2 3 248393
3 4 31583
5 1 362418
Plain text

نمونه خروجی

3
4
3
0
0
Plain text

توضیح تصویر

کپ گیر


در سال های دور در سرزمین صداقت، بیماری مهلکی شیوع پیدا کرده بود ، از آنجایی که فرد مبتلا به این بیماری بی درنگ تمام کارهای خود را از اطرافیان تقلید می‌کرد مردم آن زمان اسم این بیماری را کپیسم یا copism گذاشتند. شدت شیوع این بیماری به قدری بود که پس از مدت کوتاهی حتی در روستاها افراد زیادی به این بیماری مهلک دچار شدند.

پادشاه این سرزمین که با رای مردم انتخاب می‌شد از این می ترسید که مبادا با وجود این بیماری مخالفت یک نفر از مردم با او موجب همراهی مردم و از بین رفتن سلطنتش بشود و از آنجایی که مهندسین کامپیوتر همیشه در صف اول خدمت هستند، از ایشان خواسته شد تا راه حلی برای این مشکل پیدا کنند.

شما باید برنامه ای بنویسید که با دریافت دو متن، کپ بودن آن ها را تشخیص دهد. نهایت خلاقیت مبتلایان به این بیماری جابه جایی جملات متن با یکدیگر و یا جابه‌جایی کلمات در یک جمله است.

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

جمله تعدادی از کلمات است که بین دو نقطه قرار دارند. مجموعه ای از کلمات از اول متن تا اولین نقطه نیز یک جمله هستند.

فاصله(space) یا اینتر(newline) اضافه در یک متن دلیل بر کپ نبودن آن متن نیست. همچنین برزگی و کوچکی حروف در یکسان نبودن کلمات تأثیری ندارد. به طور مثال کلمات aLi و Ali یکسان در نظر گرفته می‌شوند.

ورودی🔗

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

خروجی🔗

در صورتی که دو متن کپ باشند عبارت this is cop و در صورتی که کپ نباشند عبارت this is not cop باید در خروجی نمایش داده شوند.

ورودی نمونه🔗

The rules infringed may be explicit, or they may be from an unwritten code
of conduct based on morality, ethics or custom, making the identification of
cheating a subjective process. Cheating can refer specifically to marital
infidelity. Someone who is known for cheating is referred to as a cheat in
British English, and a cheater in American English. A "cheat" does not have to
cheat all the time, but once faced with a challenge that they do actually want
to win, they will go back to their cheating strategies.
*
Someone who is known for cheating is referred to as a cheat in British English,
and a cheater in American EnglisH. The rules subjective process may be infringed
explicit, or they may code of conduct based on morality, be from an unwritten
ethics , making the or CustOm of cheating a identification. Cheating refer
specifically can to marital infidelity. A "cheat" does not have actually want
to TO cheat the time, but once faced with a Challenge that they do win, they
will go back to all their cheating strategies.
Plain text

خروجی نمونه🔗

this is cop
Plain text

جمع چندلایه


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

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

برای جمع یک مجموعه چندلایه به ازای هر مجموعه چندلایه عضو آن، حاصل جمع آن مجموعه چند لایه را قرار می‌دهیم و این عددها را با سایر اعداد عضو مجموعه جمع می کنیم.

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

می‌توانید فرض کنید مجموعه تهی نداریم و اعداد همه نامنفی هستند.

مثال🔗

ورودی نمونه ۱

{1, 2, {3, {4, 5, {6}}, 7}, 8}
Plain text

خروجی نمونه ۱

6
15
25
36
Plain text

ورودی نمونه ۲

{{12, 23, {4, 0, {1}, {1}}}, 0, {1}}
Plain text

خروجی نمونه ۲

1
1
6
41
1
42
Plain text

ورودی نمونه ۳

{1, {2, {{6}}}, {{{7}}}}
Plain text

خروجی نمونه ۳

6
6
8
7
7
7
16
Plain text