من رفتم سربازی اگر محتوای منو دوست داشتید و بدردتون خورد از من حمایت مالی کنید

حل تمرین رقابت با زمان کوئرا با پایتون

حل تمرین رقابت با زمان کوئرا با پایتون
حل تمرین رقابت با زمان کوئرا با پایتون

حل تمرین رقابت با زمان کوئرا با پایتون

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

 

حل تمرین رقابت با زمان کوئرا با پایتون

شرلوک هلمز در پی موری‌آرتی است و توانسته مکان اختفای او را کشف کند. خیابان‌های لندن شلوغ است و او برای رسیدن به موری‌آرتی باید از n ساختمان که به هم متصل‌اند گذر کند تا او را در پس آخرین ساختمان بیابد. نحوه حرکت شرلوک بدین شرح است که در هر ثانیه می‌تواند حداکثر مسافت k متر به بالا، پایین یا جلو حرکت کند تا به ساختمان بعدی برسد. در صورتی که مسافت مانده تا رسیدن به سقف ساختمان بعدی یا زمین کمتر از k متر شود، این مسافت باقیمانده را نیز در یک ثانیه طی می‌کند. همچنین در ابتدا شرلوک و موری‌آرتی روی زمین (در ارتفاع صفر) هستند. عرض هر ساختمان نیز برابر با  متر است؛ به این معنا که شرلوک عرض هر ساختمان را در یک ثانیه طی می‌کند. شما باید بگویید حداقل زمان مورد نیاز شرلوک برای رسیدن به موری‌آرتی چقدر است؟

 

ورودی

ورودی شامل سه خط است. در خط اول،  حداکثر مسافتی که هلمز می‌تواند در یک ثانیه طی کند، داده می‌شود. در خط دوم، عدد n (تعداد ساختمان‌ها) آمده است. در خط سوم ورودی، n عدد آمده که نشان‌دهنده ارتفاع ساختمان‌هاست.

ورودی در تمرین رقابت با زمان

 

خروجی

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

 

مثال

ورودی نمونه 1

4
3
2 13 8

 

خروجی نمونه 1

11

 

توضیحات نمونه 1

توضیحات مثال 1 در تمرین رقابت با زمان

  • مقدار k برابر 4 است. به این معنی که شرلوک، در هر ثانیه حداکثر چهار متر حرکت می‌کند. اگر مسافت باقی‌مانده تا رسیدن به سقف ساختمان بعدی یا زمین کمتر از چهار متر شود، آن مسافت را در 1 ثانیه طی می‌کند تا در سریع ترین حالت به موری‌آرتی برسد.
  • در این مثال، هلمز از ساختمان اول که دو متر ارتفاع دارد، طی 1 ثانیه بالا می‌رود. سپس در 1 ثانیه عرض ساختمان اول را طی می‌کند. در 3 ثانیه بعدی یازده متر دیگر از ساختمان دوم بالا می‌رود و 1 ثانیه از روی آن عبور می‌کند. پس از آن در 2 ثانیه پنج متر پایین می‌آید تا روی ساختمان سوم برسد و در 1 ثانیه عرض آن را طی می‌کند. در نهایت هشت متر طول ساختمان سوم را در 2 ثانیه پایین می‌آید و به موریاتی می‌رسد. بنابراین کل این مسیر 1+1+3+1+2+1+2=11 ثانیه طول می‌کشد.

 

ورودی نمونه 2

3
5
4 3 4 10 2

 

خروجی نمونه 2

15

 

توضیحات نمونه 2

توضیحات مثال 2 در تمرین رقابت با زمان

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

 

کد پایتون سوال تمرین رقابت با زمان

import math

k = int(input())
n = int(input())
arr = list(map(int, input().split()))

arr = [0] + arr + [0]

ans = n + sum(math.ceil(abs(arr[i] - arr[i + 1]) / k) for i in range(n + 1))

print(ans)

 

منبع سوال: کوئرا

اگر نیاز به حل تمرین‌های دیگری از کوئرا دارید در بخش نظرات همین نوشته برای ما بنویسید.

برای امتیاز به این نوشته کلیک کنید!
[کل: 0 میانگین: 0]