- محدودیت زمان: ۲ ثانیه
- محدودیت حافظه: ۲۵۶ مگابایت
مصطفی عاشق مطالعهی کتاب است. او هفتهای حداقل یک جلد کتاب میخواند. از آنجایی که او کتابهای زیادی را بهصورت همزمان مطالعه میکند، گاهی اوقات فراموش میکند که هر کتاب را دقیقاً تا کجا خوانده است. مصطفی از زمانی که با کوئرا کالج آشنا شده، به سیستم گذراندن فصلهای دورههای کوئرا کالج علاقهمند شده است و دوست دارد چنین سیستمی را برای مطالعهی کتابهایش پیادهسازی کند. از آنجایی که مصطفی دائماً مشغول مطالعه است، از شما خواسته تا این سیستم را برایش پیادهسازی کنید.
در کوئرا کالج، هر دوره شامل چندین فصل است. هر فصل یک درصد موردنیاز برای اتمام دارد. اگر درصد مطالعهی فصل بزرگتر یا مساوی این درصد شود، به این معناست که فصل تکمیل شده است. همچنین هر فصل میتواند به یک یا چند فصل دیگر وابسته باشد. در اینصورت، برای مطالعهی یک فصل باید حتماً فصلهای پیشنیاز آن را تکمیل کرد.
طبق توضیحات فوق، دستورات زیر باید در برنامه پیادهسازی شوند:
افزودن فصل جدید
add_chapter book_name chapter_name required_percent
این دستور، فصلی با نام chapter_name
را به کتابی با نام book_name
با درصد موردنیاز required_percent
اضافه میکند. در صورتی که فصلی با این نام در این کتاب موجود بود، درصد موردنیاز آن را بهروزرسانی کنید.
تضمین میشود که نام کتاب و نام فصل شامل whitespace نیستند.
افزودن فصل پیشنیاز
add_prerequisite_chapter book_name chapter_name prerequisite_chapter_name
این دستور، فصلی با نام prerequisite_chapter_name
را به پیشنیازهای فصل chapter_name
از کتاب book_name
اضافه میکند. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:
- کتابی با نام
book_name
موجود نباشد - فصلی با نام
chapter_name
یاprerequisite_chapter_name
در کتابbook_name
موجود نباشد - فصل
chapter_name
از قبل پیشنیاز مستقیم یا غیرمستقیم فصلprerequisite_chapter_name
باشد
حذف فصل پیشنیاز
remove_prerequisite_chapter book_name chapter_name prerequisite_chapter_name
این دستور، فصلی با نام prerequisite_chapter_name
را در صورتی از پیشنیازهای فصلی با نام chapter_name
از کتاب book_name
حذف میکند که پیشنیاز مستقیمش باشد. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:
- کتابی با نام
book_name
وجود نداشته باشد - فصلی با نام
chapter_name
یاprerequisite_chapter_name
در کتابbook_name
موجود نباشد
مطالعهی یک فصل
read book_name chapter_name percent
دستور فوق، مشخص میکند که percent
درصد از فصلی با نام chapter_name
از کتابی با نام book_name
مطالعه شده است. تضمین میشود که مقدار percent
یک عدد صحیح عضو بازهی $[1,100]$ است. اگر فصل موردنظر قبلاً به اندازهی بیشتری مطالعه شده بود، نباید تغییری صورت گیرد. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:
- کتابی با نام
book_name
وجود نداشته باشد - فصلی با نام
chapter_name
در کتابbook_name
موجود نباشد - فصلهای پیشنیاز فصل
chapter_name
(در صورت وجود) تکمیل نشده باشند
دریافت وضعیت مطالعهی یک کتاب
stats book_name
این دستور، تعداد فصلهای مطالعهشده و تعداد کل فصلهای یک کتاب را با فرمت زیر چاپ میکند:
completed_chapters_count of all_chapters_count
اگر کتابی با نام book_name
موجود نبود، هیچ اتفاقی نباید بیفتد.
خروج از برنامه
end
با اجرای این دستور، اجرای برنامه خاتمه مییابد.
ورودی
ورودی شامل چندین خط است که در هر خط یکی از دستوراتی که گفته شد، وارد میشود.
همچنین در خط آخر ورودی، دستور end
وارد میشود.
تعداد دستورات ورودی حداکثر ۲۰۰۰ تا است.
خروجی
پس از اجرای دستورات، خروجی دستورات stats
را چاپ کنید. خروجی هر دستور را در یک خط مجزا چاپ کنید.
مثال
ورودی نمونه ۱
add_chapter CLRS Introduction 90
stats CLRS
read CLRS Introduction 90
stats CLRS
end
خروجی نمونه ۱
0 of 1
1 of 1
ورودی نمونه ۲
add_chapter DesignPatterns Intro 100
read NotAvailable Intro 100
read DesignPatterns NotAvailable 100
stats DesignPatterns
add_chapter DesignPatterns CreationalDesignPatterns 80
add_prerequisite_chapter DesignPatterns CreationalDesignPatterns Intro
read DesignPatterns CreationalDesignPatterns 85
stats DesignPatterns
read DesignPatterns Intro 99
stats DesignPatterns
read DesignPatterns Intro 100
stats DesignPatterns
read DesignPatterns CreationalDesignPatterns 85
stats DesignPatterns
end
خروجی نمونه ۲
0 of 1
0 of 2
0 of 2
1 of 2
2 of 2
ارسال پاسخ برای این سؤال