خیالم راحت باشه؟


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

آقای محمدی که حساسیت خاصی بر ساعت خروج کارکنان دارد، مدیرعامل شرکت اندیشه‌سازان میانسال نیز است. او برای بهبود عملکرد کارکنان شرکت می‌خواهد نرم‌افزاری بنویسد تا بتواند ورود، خروج و جلسات کارکنان را مدیریت کند. در این شرکت، ساعت ورود و خروج نه صبح تا شش عصر است. تیم نرم‌افزار این شرکت موارد مربوط به ورود و خروج را انجام داده، ولی برای مدیریت جلسات از شما کمک می‌خواهد.

دقت کنید این سوال سه بخشی‌ است و سوالات دوم و سوم در ادامه خواهد آمد.

نکته اول: دقت کنید ساعت نه صبح، برابر با epoch صفر و ساعت شش عصر برابر با epoch 32400000 است. نکته دوم: واحد epoch میلی ثانیه است. نکته سوم: جلسات تداخل ندارند. نکته چهارم: تضمین می‌شود که فضای خالی برای جلسه وجود دارد.

در ابتدا باید یک slot خالی برای جلسه پیدا کنیم. در این قسمت، به کد شما مطابق با ورودی رفتار می‌شود و انتظار می‌رود تا اولین جای خالی را برای جلسه ارائه کند.

ورودی🔗

در اولین خط ورودی، تنها یک عدد است که تعداد جلسات کارمند را نشان می‌دهد.

n n

سپس در n خط بعدی، اطلاعات مربوط به جلسات 0م تا n-1 م می‌آید.

 i    start_epoch    end_epoch 
Plain text

در خط بعدی، مشخصات جلسه‌ای گرفته می‌شود که میخواهیم در تقویم کارمند قرار دهیم.

n    duration
Plain text

خروجی🔗

خروجی برنامه‌ی شما باید شامل یک خط باشد که در زمان شروع و پایان قرار داده می‌شود.

start_epoch    end_epoch 
Plain text

مثال🔗

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

7
0 3676 37812
1 53091 64471
2 96052 109623
4 138052 165419
3 110652 132885
5 180586 202602
6 203473 236618
7 13879
Plain text

در تقویم کارمند هفت جلسه قرار داده شده است که به ترتیب آمده‌اند. و در خط هشتم، مشخصات جلسه‌ای که می‌خواهیم در تقویم قرار بدهیم آمده است.

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

37813 51692
Plain text

بنا به تقویم کاربر جلسه باید در این epoch از روز برگزار شود.

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

1
0 31663 59889
1 18403
Plain text

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

0 18403
Plain text

آقای محمدی برزخ می‌شود.


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

دقت کنید این سوال ادامه سوال قبلی است.

آقای محمدی زمانی که کارمندان جلسات زیادی برگزار می‌کنند برزخ می‌شود. حالا آقای محمدی از شما می‌خواهد کدی بزنید که میزان ساعت جلسات مشترک هر دو کارمند خود را پیدا کند.

نکته: جلسات مشترک id یکسان دارند اما دقت کنید که ممکن است بنا به موضوع جلسه فردی وارد و یا خارج شود.

ورودی🔗

برای ورودی در این سوال می‌بایست اطلاعات دو کاربر را گرفت. به همین منظور در ابتدا یک عدد طبیعی nn گرفته می‌شود که میزان جلسات نفر اول است. سپس در n خط بعدی، اطلاعات مربوط به جلسات 0م تا n-1 م می‌آید.

 i    start_epoch    end_epoch 
Plain text

در خط بعدی، یک عدد طبیعی mm گرفته می‌شود که تعداد جلسات نفر دوم است. سپس در m خط بعدی، اطلاعات مربوط به جلسات 0م تا m-1 م می‌آید.

 i    start_epoch    end_epoch 
Plain text

خروجی🔗

خروجی برنامه‌ی شما باید شامل یک خط است که طول میزان epoch مشترک بین دو کارمند است.

مثال🔗

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

6
0 29581 36017
1 63462 78043
2 110302 120093
3 145840 176662
4 186877 197551
5 232219 245789
3
0 29152 51690
1 52628 73503
2 82456 105634
Plain text

کارمند اول ۶ جلسه و کارمند دوم ۳ جلسه دارد. و اطلاعات جلسات در ادامه آمده است.

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

16477
Plain text

طول epochهای مشترک دو کارمند 16477 است.

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

3
0 13245 16785
1 52587 89345
2 101244 110574
3
0 15656 20645
1 71546 79431
2 91636 120456
Plain text

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

18344
Plain text

تقویم هوشمند


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

دقت کنید که این سوال ادامه سوالات قبلی است.

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

نکته مهم: روزها از Monday شروع می‌شود و به Sunday تمام می‌شود.

ورودی🔗

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

user_id
busy_day
number_of_meetings
for i = 0 ; i < number_of_meetings
    meeting_id day_of_week start_epoch end_epoch
Plain text

بعد از تمامی این خط‌ها، اطلاعات مربوط به جلسه‌ی درخواستی داده می‌شود

meeting_id duration
Plain text

خروجی🔗

خروجی برنامه‌ی شما باید شامل یک خط باشد که شامل روز برگزاری جلسه، epoch شروع و epoch پایان است.

day_of_week start_epoch end_epoch
Plain text

مثال🔗

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

3
0
THURSDAY
8
0 SATURDAY 13751 19239
1 SUNDAY 40667 61453
2 SATURDAY 88740 92547
3 SATURDAY 120243 153659
4 SUNDAY 182110 215886
5 FRIDAY 235581 249694
6 TUESDAY 273514 298595
7 FRIDAY 307952 320658
1
FRIDAY
3
0 TUESDAY 16423 29404
1 MONDAY 61138 70147
2 TUESDAY 85606 91808
2
MONDAY
3
0 WEDNESDAY 3020 13903
1 THURSDAY 43654 45165
2 FRIDAY 68613 70909
9 2542
Plain text

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

TUESDAY 0 2542
Plain text

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

2
0
MONDAY
3
0 TUESDAY 13981 31546
1 SATURDAY 33079 43066
2 WEDNESDAY 52191 82032
1
TUESDAY
8
0 SUNDAY 10805 21284
1 MONDAY 47042 48221
2 MONDAY 50556 60206
3 SATURDAY 64827 65884
4 WEDNESDAY 71762 89076
5 SATURDAY 91499 119001
6 SATURDAY 123796 132531
7 SATURDAY 161475 189572
9 29511
Plain text

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

WEDNESDAY 0 29511
Plain text