لینک‌های مفید برای شرکت در مسابقه:

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

کتاب‌خوان کالجی


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

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

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

طبق توضیحات فوق، دستورات زیر باید در برنامه پیاده‌سازی شوند:

افزودن فصل جدید🔗

add_chapter book_name chapter_name required_percent
Plain text

این دستور، فصلی با نام chapter_name را به کتابی با نام book_name با درصد موردنیاز required_percent اضافه می‌کند. در صورتی که فصلی با این نام در این کتاب موجود بود، درصد موردنیاز آن را به‌روزرسانی کنید.

تضمین می‌شود که نام کتاب و نام فصل شامل whitespace نیستند.

افزودن فصل پیش‌نیاز🔗

add_prerequisite_chapter book_name chapter_name prerequisite_chapter_name
Plain text

این دستور، فصلی با نام 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
Plain text

این دستور، فصلی با نام prerequisite_chapter_name را در صورتی از پیش‌نیاز‌های فصلی با نام chapter_name از کتاب book_name حذف می‌کند که پیش‌نیاز مستقیمش باشد. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:

  • کتابی با نام book_name وجود نداشته باشد
  • فصلی با نام chapter_name یا prerequisite_chapter_name در کتاب book_name موجود نباشد

مطالعه‌ی یک فصل🔗

read book_name chapter_name percent
Plain text

دستور فوق، مشخص می‌کند که percent درصد از فصلی با نام chapter_name از کتابی با نام book_name مطالعه شده است. تضمین می‌شود که مقدار percent یک عدد صحیح عضو بازه‌ی [1,100][1,100] است. اگر فصل موردنظر قبلاً به اندازه‌ی بیشتری مطالعه شده بود، نباید تغییری صورت گیرد. اگر حداقل یکی از شروط زیر برقرار باشد، هیچ اتفاقی نباید بیفتد:

  • کتابی با نام book_name وجود نداشته باشد
  • فصلی با نام chapter_name در کتاب book_name موجود نباشد
  • فصل‌های پیش‌نیاز فصل chapter_name (در صورت وجود) تکمیل نشده باشند

دریافت وضعیت مطالعه‌ی یک کتاب🔗

stats book_name
Plain text

این دستور، تعداد فصل‌های مطالعه‌شده و تعداد کل فصل‌های یک کتاب را با فرمت زیر چاپ می‌کند:

completed_chapters_count of all_chapters_count
Plain text

اگر کتابی با نام book_name موجود نبود، هیچ اتفاقی نباید بیفتد.

خروج از برنامه🔗

end
Plain text

با اجرای این دستور، اجرای برنامه خاتمه می‌یابد.

ورودی🔗

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

همچنین در خط آخر ورودی، دستور end وارد می‌شود.

تعداد دستورات ورودی حداکثر ۲۰۰۰ تا است.

خروجی🔗

پس از اجرای دستورات، خروجی دستورات stats را چاپ کنید. خروجی هر دستور را در یک خط مجزا چاپ کنید.

مثال🔗

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

add_chapter CLRS Introduction 90
stats CLRS
read CLRS Introduction 90
stats CLRS
end
Plain text

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

0 of 1
1 of 1
Plain text

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

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
Plain text

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

0 of 1
0 of 2
0 of 2
1 of 2
2 of 2
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.