از شما میخواهیم، قسمتی از سایت برای ارائه فیلمهای سینمایی را طراحی کنیم. قرار است تعدادی فیلم به سایت اضافه شود، هر بازیگر یک پروفایل دارد که به فیلمهایی که در آن بازی کرده را نشان میدهد. هر فیلم هم یک پروفایل دارد که جزئیات آن مثل اسم، سال انتشار، کیفیت فیلم و لیست بازیگران آن را نشان میدهد.
ساختار دستورها به این صورت است که ابتدا بازیگرها و فیلمها روی سایت تعریف میشوند، سپس در دستورهایی به شما گفته میشود که این بازیگر در این فیلم بازی کرده است و شما باید این مورد را ثبت کنید. همچنین ممکن است پروفایل یک بازیگر یا فیلم از سایت حذف شود و شما نباید دیگر آنها را نشان دهید.
فیلمها باید قابلیت دسته بندی شدن داشته بر اساس ویژگیهایشان داشته باشند.
ADD-MOVIE
فرمت کلی دستور به صورت زیر است:
یعنی فیلمی با نام <title>
، محصول سال <date>
با کیفیت <quality>
روی سایت آپلود شده است.
رشتهی <title>
باید حداکثر ۲۰ کاراکتر باشد. رشتهی <date>
باید یک عدد صحیح بین 1888
تا 2024
باشد. رشتهی <quality>
باید یکی از مقادیر 720p
، 1080p
یا 4K
باشد.
بعد از اضافه شدن هر فیلم باید یک عدد نسبت دهید که به آن <movie-id>
میگوییم. برای هر فیلم، این عدد برابر تعداد فیلمهایی است که قبل از این فیلم با دستور ADD-MOVIES
با موفقیت اضافه شدهاند. (مهم نیست اگر بعداً پاک شده باشند.)
یعنی اولین فیلم که بدون خطا اضافه میشود، <movie-id>
آن برابر ۰، دومین فیلم ۱، سومین فیلم ۲ و... خواهد بود.
<title>
قابل قبول نبود، خطای invalid title
را چاپ کنید.<date>
قابل قبول نبود، خطای invalid date
را چاپ کنید.<quality>
قابل قبول نبود، خطای invalid quality
را چاپ کنید.added successfully <movie-id>
را چاپ کنید، که بهجای <movie-id>
مقدار آن را قرار میدهید.REM-MOVIE
فرمت کلی دستور به صورت زیر است:
این دستور یعنی میخواهیم فیلم <movie-id>
از سایت حذف شود.
<movie-id>
اکنون روی سایت وجود ندارد، خطای invalid movie id
را چاپ کنید.removed successfully <movie-id>
را چاپ کنید، که بهجای <movie-id>
مقدار آن را قرار میدهید.ADD-CAST
فرمت کلی دستور به صورت زیر است:
این دستور یعنی میخواهیم بازیگری با نام <name>
را به سایت اضافه کنیم.
رشتهی <name>
باید حداکثر ۲۰ کاراکتر باشد و فقط شامل حروف بزرگ و کوچک انگلیسی باشد.
بعد از اضافه شدن هر بازیگر باید یک عدد نسبت دهید که به آن <cast-id>
میگوییم. مشابه <movie-id>
، برای هر بازیگر، این عدد برابر تعداد بازیگرهایی است که قبل از این بازیگر با این دستور با موفقیت اضافه شدهاند. (مهم نیست اگر بعداً پاک شده باشند.)
<name>
قابل قبول نبود، خطای invalid name
را چاپ کنید.added successfully <cast-id>
را چاپ کنید، که بهجای <cast-id>
مقدار آن را قرار میدهید.REM-CAST
فرمت کلی دستور به صورت زیر است:
این دستور یعنی میخواهیم بازیگری با نام <cast-id>
را از سایت حذف کنیم.
<cast-id>
اکنون روی سایت وجود ندارد، خطای invalid cast id
را چاپ کنید.removed successfully <cast-id>
را چاپ کنید، که بهجای <cast-id>
مقدار آن را قرار میدهید.SHOW-MOVIE
فرمت کلی دستور به صورت زیر است:
در این دستور به شما یک <movie-id>
داده میشود و از شما میخواهیم در فرمت زیر مشخصات این فیلم را چاپ کنید:
که در داخل "
، مقدارهای title
، date
، quality
قرار میگیرد. توجه کنید cast-id
ها باید به ترتیب از کوچک به بزرگ باشند.
اگر فیلمی با این <movie-id>
وجود ندارد. خطای invalid movie id
را چاپ کنید.
SHOW-CAST
فرمت کلی دستور به صورت زیر است:
در این دستور به شما یک <cast-id>
داده میشود و از شما میخواهیم در فرمت زیر مشخصات این بازیگر را چاپ کنید:
که در داخل "
، مقدار name
قرار میگیرد. توجه کنید movie-id
ها باید به ترتیب از کوچک به بزرگ باشند.
اگر بازیگری با این <cast-id>
وجود ندارد. خطای invalid cast id
را چاپ کنید.
LINK-CAST-TO-MOVIE
فرمت کلی دستور به صورت زیر است:
این دستور یعنی بازیگر با شمارهی <cast-id>
در فیلم <movie-id>
حضور داشته و باید این دو را به هم متصل کنید.
<cast-id>
اکنون روی سایت وجود ندارد، خطای invalid cast id
را چاپ کنید.<movie-id>
اکنون روی سایت وجود ندارد، خطای invalid movie id
را چاپ کنید.already linked
را چاپ کنید.successfully linked <cast-id> to <movie-id>
را چاپ کنید، که بهجای <movie-id>
و <cast-id>
مقدار آن را قرار میدهید.FILTER-MOVIES-BY-TITLE
فرمت کلی دستور به صورت زیر است:
در این دستور باید movie-id
تمام فیلمهایی که عنوان آنها با <pattern>
شروع میشود را به ترتیب صعودی که داخل []
قرار دارند و با ,
از هم جدا شدهاند چاپ کنید. (دقیقاً مشابه نمونهها)
FILTER-MOVIES-BY-DATE
فرمت کلی دستور به صورت زیر است:
در این دستور باید movie-id
تمام فیلمهایی که تاریخ انتشار آنها با <date-pattern>
سازگار است را به ترتیب صعودی که داخل []
قرار دارند و با ,
از هم جدا شدهاند چاپ کنید. (دقیقاً مشابه نمونهها)
مقدار <ineq> <n>
یکی از حالتهای>= n
، > n
،= n
، < n
یا <= n
را دارد که بهجای n
یک عدد صحیح قرار میگیرد و شما باید همهی فیلمهایی که data
آنها در سمت چپ این رابطه قرار میگیرد و حاصل درست میشود را چاپ کنید.
FILTER-MOVIES-BY-QUALITY
فرمت کلی دستور به صورت زیر است:
در این دستور باید movie-id
تمام فیلمهایی که کیفیت آن برابر <pattern>
است را به ترتیب صعودی که داخل []
قرار دارند و با ,
از هم جدا شدهاند چاپ کنید. (دقیقاً مشابه نمونهها)
در سطر اول ورودی، عدد صحیح و مثبت آمده که تعداد دستورها را نشان میدهد.
در سطر بعدی، در هر سطر یک دستور مطابق توضیحات سوال داده میشود.
در سطر و در هر سطر، خروجی متناسب با هر دستور را چاپ کنید.