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

می‌توانید سوال‌های خود را از بخش "سوال بپرسید" مطرح کنید.

ساعت کار


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

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

دستگاه او در سه سطح دسترسی مختلف قابل برنامه ریزی است:

  1. فروشگاه زنجیره‌ای Tenant
  2. دکان Store
  3. دستگاه Station

برای مثال ممکن است که Tenant یک برنامه برای ساعات روشن بودن به دستگاه بدهد و دکانی (Store) که دستگاه در آن قرار دارد یک برنامه دیگر و همچنین می توان یک برنامه اختصاصی به خود دستگاه (Station) داد. برنامه‌ها می‌توانند با یکدیگر اشتراک (تداخل) داشته باشند و در صورت تداخل اولویت با سطح دسترسی با شماره‌ی بیشتر است.

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

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

قوانین:

  • استثناها به ساعات کاری اولویت دارند.
  • استثنایی که برای یک Station تعریف می شود بر استثنایی که برای یک Store تعریف می‌شود اولویت دارد. همچنین استثنایی که برای یک Store تعریف می‌شود بر استثنایی که برای یک Tenant تعریف می‌شود اولویت دارد.
  • ترتیب اولویت استثناها به صورت زیر است:
    • دستگاه Station
    • دکان Store
    • فروشگاه زنجیره‌ای Tenant
  • سطوحی دسترسی سه مورد Tenant, Store, Station هستند.
  • در صورتی که چند استثنا با یک سطح دسترسی موجود بود استثنایی که در لیست دستورات بالاتر است اولویت بیشتری دارد.

ورودی🔗

خط اول به ترتیب شامل اعداد nn، mm و qq است. 1n,m2001 \le n,m \le 200 1q10 1 \le q \le 10 سپس در nn سطر بعدی برنامه‌ی هفتگی می‌آید، که در هر خط آن ابتدا روز آن دستور در هفته و سپس دو زمان شروع و پایان دستور می‌آید. برای مثال:

Monday 8:00 12:00
Plain text

به این معنی‌ است که در روز Monday هر هفته دستگاه از ساعت ۸ تا ۱۲ روشن است.

  • تضمین می‌شود ساعات داده شده به صورت HH:MMHH:MM می‌باشند که در آن: 0HH230 \le HH \le 23 0MM590 \le MM \le 59
  • توجه داشته باشید برای مثال ساعت ۸ و ۷ دقیقه به صورت 8:7 می‌آید.
  • همچنین روز‌های هفته از بین رشته‌های زیر است: [Saturday,Sunday,Monday,Tuesday,Wednesday,Thursday,Friday][Saturday, Sunday, Monday, Tuesday, Wednesday, Thursday, Friday]

سپس در mm خط بعدی استثنا‌ها می‌آیند، که در هر خط آن ابتدا سطح دسترسی استثنا، سپس دو زمان شروع و پایان بازه استثنا و در آخر دستور مورد نظر می‌آیند. برای مثال:

Tenant 2020-05-20T09:00 2020-05-20T11:00 closed
Plain text

به این معنی‌ است که دستگاه در بازه زمانی مشخص شده خاموش می‌باشد. تضمین می‌شود دستور مورد نظر یکی از closed یا open‍‍ است.

در هر یک از qq خط بعدی نیز یک زمان‌ خواسته شده توسط مشتری آمده است.

خروجی🔗

در qq خط خروجی به ازای هر زمان تشخیص دهید آیا دستگاه در این زمان روشن است یا خاموش، اگر روشن بود عبارت true‍‍‍‍ و در غیر این صورت false چاپ کنید.

مثال🔗

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

16 4 2
Monday 8:00 12:00
Monday 13:00 17:30
Tuesday 8:00 12:00
Tuesday 13:00 17:30
Thursday 8:00 12:00
Thursday 13:00 17:30
Wednesday 8:00 13:00
Friday 8:00 12:00
Friday 13:00 20:00
Saturday 10:00 13:00
Monday 6:30 19:00
Tuesday 6:30 19:00
Thursday 6:30 19:00
Wednesday 6:30 14:30
Friday 6:30 21:00
Saturday 9:00 14:30
Tenant 2020-05-20T09:00 2020-05-20T11:00 closed
Store 2020-06-01T08:00 2020-06-20T20:00 open
Station 2020-06-01T06:00 2020-06-05T18:00 closed
Station 2020-05-01T00:00 2020-05-02T00:00 closed
2020-05-01T00:00
2020-06-10T00:00
Plain text

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

false
true
Plain text
ارسال پاسخ برای این سؤال
در حال حاضر شما دسترسی ندارید.