حل تمرین ارسال سنگین کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات پیاده سازی برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین ارسال سنگین کوئرا با پایتون
دیجیکالا برای ارسال بستههای سنگین مانند یخچال و غیره نیاز به دقیقاً دو نفر دارد که بتوانند بسته را جابهجا کنند. از این رو دو نفر را به عنوان پیک استخدام کرده است. هر کدام از این دو نفر در بازههایی از روزهای ماه میتوانند سر کار بروند. حالا مسئولین دیجیکالا میخواهند بدانند که در چند روز از ماه آنها میتوانند بستههای سنگین را ارسال کنند.
ورودی
در سطر اول ورودی دو عدد و میآید که به ترتیب نمایانگر تعداد بازههایی است که پیک اول و دوم سر کار میآیند. سپس در n خط بعدی در هر خط یک بازهی کاری پیک اول میآید. بعد از آن در هر یک از m خط بعدی یکی از بازههای کاری پیک دوم میآید. همچنین نحوه ورودی دادن بازهها به این شکل است:
در یک خط دو عدد l و r میآید که اولی نمایانگر شروع بازه و دومی نمایانگر پایان بازه است.
دقت کنید که هیچ کدام از دو بازهی یک پیک با هم اشتراک ندارند. همچنین تمام بازهها شامل نقطهی شروع و پایان نیز میشوند. همچنین توجه کنید که در ورودی هیچ یک از بازههای کاری یک پیک دو بار نخواهد آمد.
خروجی
در تنها خط خروجی تعداد روزهایی را که دیجیکالا میتواند بستهی سنگین ارسال کند را خروجی دهید.
مثال
ورودی نمونه 1
3 2 1 8 9 15 18 25 15 20 8 10
خروجی نمونه 1
7
توضیح: روزهایی که دیجیکالا میتواند بستهی سنگین ارسال کند:
8، 9، 10، 15، 18، 19، 20
کد پایتون سوال تمرین تربیت بدنی سنگین
n, m = map(int, input().split()) courier1_days = set() for _ in range(n): l, r = map(int, input().split()) courier1_days.update(range(l, r + 1)) overlap_days = 0 for _ in range(m): l, r = map(int, input().split()) for day in range(l, r + 1): if day in courier1_days: overlap_days += 1 print(overlap_days)
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.
ارسال پاسخ