Хакерранк — Решение проблемы яблок и апельсинов на языке Kotlin

В доме Сэма растут яблоня и апельсиновое дерево, которые приносят огромное количество плодов. Используя приведенную ниже информацию, определите количество яблок и апельсинов, которые садятся на дом Сэма.

На приведенной ниже диаграмме:

  • Красная область обозначает дом, где s — начальная точка, а t — конечная точка. Яблоня находится слева от дома, а апельсиновое дерево — справа от него.
  • Предположим, что деревья расположены в одной точке, где яблоня находится в точке a, а апельсиновое дерево — в точке b.
  • Когда плод падает со своего дерева, он падает на расстоянии d единиц от своего дерева, расположенного вдоль оси x. *Отрицательное значение d означает, что плод упал на d единиц влево от дерева, а положительное значение d означает, что он упал на d единиц вправо от дерева. *

Учитывая значение d для m яблок и n апельсинов, определите, сколько яблок и апельсинов упадет на дом Сэма (т.е. в интервале [s,t])?
Например, дом Сэма находится между s=7 и t=10. Яблоня расположена на расстоянии a=4
а апельсин — на b=12 Существует m=3 _яблока и _n=3 апельсина. Яблоки брошены на расстояние =[2,3,-4] единицы от a, а апельсины =[3,-2,-4] единицы. Если добавить расстояние до каждого яблока к положению дерева, то они приземляются на [4+2,4+3,4+-4]=[6,7,0]. Апельсины приземляются на [12+3,12+-2,12+-4]=[15,10,8] Одно яблоко и два апельсина приземляются в диапазоне 7-10, поэтому мы выводим

1
2
Вход в полноэкранный режим Выход из полноэкранного режима

Описание функции

Выполните функцию countApplesAndOranges в редакторе ниже. Она должна вывести количество яблок и апельсинов, которые упали на дом Сэма, каждое в отдельной строке.

Функция countApplesAndOranges имеет следующий параметр(ы):

  • s: целое число, начальная точка расположения дома Сэма.
  • t: целое число, конечная точка расположения дома Сэма.
  • a: целое число, местоположение яблони.
  • b: целое число, местоположение апельсинового дерева.
  • Яблоки: целочисленный массив, расстояние, на котором каждое яблоко падает с дерева.
  • апельсины: целочисленный массив, расстояния, на которых каждый апельсин падает с дерева.

Формат ввода

Первая строка содержит два целых числа, разделенных пробелами, обозначающих соответствующие значения s и t.
Вторая строка содержит два целых числа, разделенных пробелами, обозначающих соответствующие значения a и b.
Третья строка содержит два разделенных пробелами целых числа, обозначающих соответствующие значения m и n.
Четвертая строка содержит разделенные пробелами целые числа, обозначающие соответствующие расстояния, на которые каждое яблоко падает от точки a.
Пятая строка содержит n целых чисел, разделенных пробелами, обозначающих соответствующие расстояния, на которых каждый апельсин упал от точки b.

Ограничения

  • 1 < s, t, a, b, m, n < 10
  • -10 < d < 10
  • a < s < t < b

Формат вывода

Выведите два целых числа на двух разных строках:

  1. Первое целое число: количество яблок, упавших на дом Сэма.
  2. Второе целое число: количество апельсинов, упавших на дом Сэма.

Образец ввода 0

7 11
5 15
3 2
-2 2 1
5 -6

Вход в полноэкранный режим Выход из полноэкранного режима

Образец вывода 0

1
1

Вход в полноэкранный режим Выход из полноэкранного режима

ОТВЕТ:

 fun countApplesAndOranges(
        s: Int,
        t: Int,
        a: Int,
        b: Int,
        apples: Array<Int>,
        oranges: Array<Int>
    ): Unit {
         var countApple = 0
         var countOrang = 0

         for (i in apples) {
             var appleDistance = a + i
             if (s <= appleDistance && appleDistance <= t)
                 countApple = countApple + 1
         }
         for (i in oranges) {
             var orangeDistance = b + i
             if (s <= orangeDistance && orangeDistance <= t)
                 countOrang = countOrang + 1
         }
         println(countApple)
         println(countOrang)
 }
Войти в полноэкранный режим Выход из полноэкранного режима

Оцените статью
devanswers.ru
Добавить комментарий