برنامه نویسی

راه حل Hackerrank-Kanguroo در کاتلین – انجمن DEV

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

شما باید راهی پیدا کنید تا هر دو کانگورو را در یک مکان در همان زمان به عنوان بخشی از نمایش بیاورید. در صورت امکان، YES را برگردانید، در غیر این صورت خیر را برگردانید.

مثال
x1=2
v1=1
x2=1
v2=2

پس از یک پرش، هر دو در x=3، (x1+v1=2+1،x2+v2=1+2) هستند، بنابراین پاسخ بله است.

شرح عملکرد

تابع کانگورو را در ویرایشگر زیر کامل کنید.

کانگورو دارای پارامتر(های) زیر است:

  • int x1، int v1: موقعیت شروع و فاصله پرش برای کانگورو 1
  • int x2, int v2: موقعیت شروع و فاصله پرش برای کانگورو 2

برمی گرداند

فرمت ورودی

یک خط منفرد از چهار عدد صحیح جدا شده با فاصله که مقادیر مربوطه x1،v1،x2 و v2 را نشان می دهد.

محدودیت ها

011

ورودی نمونه 0

0 3 4 2
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی نمونه 0

YES
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

توضیح 0

دو کانگورو از مکان های زیر می پرند:

توضیحات تصویر
از تصویر مشخص است که کانگوروها پس از تعداد پرش های مشابه (4 پرش) در همان مکان (شماره 12 روی خط اعداد) به هم می رسند و YES را چاپ می کنیم.

ورودی نمونه 1

0 2 5 3
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

خروجی نمونه 1

NO
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

کانگوروی دوم دارای یک مکان شروع است که جلوتر از مکان شروع کانگورو اول (به عنوان مثال x1>x2) جلوتر (به سمت راست) است زیرا کانگورو دوم با سرعت بیشتری حرکت می کند (به معنی v2>v1) و در حال حاضر جلوتر از کانگورو است. اولین کانگورو، اولین کانگورو هرگز نمی تواند به عقب بیفتد. بنابراین، ما NO را چاپ می کنیم.

راه حل :

fun kangaroo(x1: Int, v1: Int, x2: Int, v2: Int): String {
    var start_k1 = x1+v1
    var startt_k2 = x2+v2
    var answer =0

     if(v1!= v2){
         var v = Math.abs(v2-v1)
         answer = (startt_k2-start_k1)%v
     } 

     if (v1<v2 || answer!=0 ||v1==v2){ 
         return "NO"
     }
       else{
          return "YES"
       }
   }

fun main(args: Array<String>) {
    val first_multiple_input = readLine()!!.trimEnd().split(" ")

    val x1 = first_multiple_input[0].toInt()

    val v1 = first_multiple_input[1].toInt()

    val x2 = first_multiple_input[2].toInt()

    val v2 = first_multiple_input[3].toInt()

    val result = kangaroo(x1, v1, x2, v2)

    println(result)
}
وارد حالت تمام صفحه شوید

از حالت تمام صفحه خارج شوید

نوشته های مشابه

دیدگاهتان را بنویسید

نشانی ایمیل شما منتشر نخواهد شد. بخش‌های موردنیاز علامت‌گذاری شده‌اند *

دکمه بازگشت به بالا