حل تمرین ارسال سنگین کوئرا با پایتون
در این نوشته به روش حل یکی از سوالات پیاده سازی برنامه نویسی وبسایت کوئرا میپردازیم.
حل تمرین ارسال سنگین کوئرا با پایتون
دیجیکالا برای ارسال بستههای سنگین مانند یخچال و غیره نیاز به دقیقاً دو نفر دارد که بتوانند بسته را جابهجا کنند. از این رو دو نفر را به عنوان پیک استخدام کرده است. هر کدام از این دو نفر در بازههایی از روزهای ماه میتوانند سر کار بروند. حالا مسئولین دیجیکالا میخواهند بدانند که در چند روز از ماه آنها میتوانند بستههای سنگین را ارسال کنند.
ورودی
در سطر اول ورودی دو عدد و میآید که به ترتیب نمایانگر تعداد بازههایی است که پیک اول و دوم سر کار میآیند. سپس در 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)
منبع سوال: کوئرا
اگر نیاز به حل تمرینهای دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.



















بار اول اشتباه کرده بودم و آخر بازه رو حساب نکردم خروجی کمتر شد
خوشحالیم این نوشته به شما کمک کرده است. موفق باشید.
من همیشه سر بازهها قاطی میکردم که انتها هم شامل میشه یا نه
خوشحالیم این نوشته به شما کمک کرده است. موفق باشید.
من اول فکر میکردم باید الگوریتم خیلی سختی داشته باشه ولی با set خیلی راحت شد
خوشحالیم این نوشته به شما کمک کرده است. موفق باشید.
خیلی سوال کاربردیه
موفق باشید.
شما به عنوان برنامه نویس با while بیشتر حال میکنی یا for؟
بستگی به سوال دارد یکی از آن یکی بهتر یا بدتر نیست.