- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
مصطفی عاشق مطالعهی کتاب است. او هفتهای حداقل یک جلد کتاب میخواند. از آنجایی که او کتابهای زیادی را بهصورت همزمان مطالعه میکند، گاهی اوقات فراموش میکند که هر کتاب را دقیقاً تا کجا خوانده است. مصطفی از زمانی که با کوئرا کالج آشنا شده، به سیستم گذراندن فصلهای دورههای کوئرا کالج علاقهمند شده است و دوست دارد چنین سیستمی را برای مطالعهی کتابهایش پیادهسازی کند. از آنجایی که مصطفی دائماً مشغول مطالعه است، از شما خواسته تا این سیستم را برایش پیادهسازی کنید.
در کوئرا کالج، هر دوره شامل چندین فصل است. هر فصل یک درصد موردنیاز برای اتمام دارد. اگر درصد مطالعهی فصل بزرگتر یا مساوی این درصد شود، به این معناست که فصل تکمیل شده است. همچنین هر فصل میتواند به یک یا چند فصل دیگر وابسته باشد. در اینصورت، برای مطالعهی یک فصل باید حتماً فصلهای پیشنیاز آن را تکمیل کرد.
طبق توضیحات فوق، دستورات زیر باید در برنامه پیادهسازی شوند:
افزودن فصل جدید
این دستور، فصلی با نام chapter_name
را به کتابی با نام book_name
با درصد موردنیاز required_percent
اضافه میکند. در صورتی که فصلی با این نام در این کتاب موجود بود، درصد موردنیاز آن را بهروزرسانی کنید.
تضمین میشود که نام کتاب و نام فصل شامل whitespace نیستند.
افزودن فصل پیشنیاز
این دستور، فصلی با نام prerequisite_chapter_name
را به پیشنیازهای فصل chapter_name
از کتاب book_name
اضافه میکند. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:
- کتابی با نام
book_name
موجود نباشد - فصلی با نام
chapter_name
یاprerequisite_chapter_name
در کتابbook_name
موجود نباشد - فصل
chapter_name
از قبل پیشنیاز مستقیم یا غیرمستقیم فصلprerequisite_chapter_name
باشد
حذف فصل پیشنیاز
این دستور، فصلی با نام prerequisite_chapter_name
را در صورتی از پیشنیازهای فصلی با نام chapter_name
از کتاب book_name
حذف میکند که پیشنیاز مستقیمش باشد. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:
- کتابی با نام
book_name
وجود نداشته باشد - فصلی با نام
chapter_name
یاprerequisite_chapter_name
در کتابbook_name
موجود نباشد
مطالعهی یک فصل
دستور فوق، مشخص میکند که percent
درصد از فصلی با نام chapter_name
از کتابی با نام book_name
مطالعه شده است. تضمین میشود که مقدار percent
یک عدد صحیح عضو بازهی است. اگر فصل موردنظر قبلاً به اندازهی بیشتری مطالعه شده بود، نباید تغییری صورت گیرد. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:
- کتابی با نام
book_name
وجود نداشته باشد - فصلی با نام
chapter_name
در کتابbook_name
موجود نباشد - فصلهای پیشنیاز فصل
chapter_name
(در صورت وجود) تکمیل نشده باشند
دریافت وضعیت مطالعهی یک کتاب
این دستور، تعداد فصلهای مطالعهشده و تعداد کل فصلهای یک کتاب را با فرمت زیر چاپ میکند:
اگر کتابی با نام book_name
موجود نبود، هیچ اتفاقی نباید بیفتد.
خروج از برنامه
با اجرای این دستور، اجرای برنامه خاتمه مییابد.
ورودی
ورودی شامل چندین خط است که در هر خط یکی از دستوراتی که گفته شد، وارد میشود.
همچنین در خط آخر ورودی، دستور end
وارد میشود.
تعداد دستورات ورودی حداکثر ۲۰۰۰ تا است.
خروجی
پس از اجرای دستورات، خروجی دستورات stats
را چاپ کنید. خروجی هر دستور را در یک خط مجزا چاپ کنید.
مثال
ورودی نمونه ۱
خروجی نمونه ۱
ورودی نمونه ۲
خروجی نمونه ۲
ارسال پاسخ برای این سؤال