Juliana2414
18.05.2020 15:04

Новый город разделен на h*l квадратных участков. По участкам вдоль границ поселка проложена дорога. На участках возле дороги должны быть построены дома, а на остальных участках будет разбит парк.

В городе кроме дороги вдоль границ поселка планируется проложить авеню (дорогу с севера на юг), и стрит (дорогу с запада на восток). Каждая дорога будет шириной в один участок.

По известному количеству участков для строительства домов и парков определите, где должна пройти авеню и стрит.

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

В первой строке вводятся числе h и l (3 ≤ h, l ≤ 109) - размеры города(количество строк и столбцов соответственно).

Во второй строке вводятся числа m и p (0 ≤ m, p ≤ 1018) - количество участков для домов и парков соответственно.

Гарантируется, что данные корректны и ответ существует.

Формат результата

Выведите два числа: n (2 ≤ n ≤ h-1) - номер строки, в которой нужно построить стрит, и s (2 ≤ s ≤ l-1) - номер столбца, в котором нужно построить авеню.

Напишите программу(c++ или python)

Нажмите на рекламу ниже и сразу увидите ответ
Популярные вопросы:
Ответ:
Dima890438
06.07.2022 09:00

import sys

A = int(input())

B = int(input())

C = int(input())

D = int(input())

K = int(input())

def check(x, y):

   if abs(x) > K or abs(y) > K:

       return 0

   y += A

   if y >= K:

       return A - (y - K)

   x += B

   if x >= K:

       return A + B - (x - K)

   y -= C

   if y <= -K:

       return A + B + C - (-y - K)

   x -= D

   if x <= -K:

       return A + B + C + D - (-x - K)

   return -1

if check(0, 0) != -1:

   print(check(0, 0))

   sys.exit(0)

x = B - D

y = A - C

left = 0

right = 10 ** 9

while right - left > 1:

   mid = (left + right) // 2

   if check(x * mid, y * mid) == -1:

       left = mid

   else:

       right = mid

print(right * (A + B + C + D) + check(x * right, y * right))

Объяснение:

0,0(0 оценок)
Ответ:
люба358
22.09.2022 07:50

Очень старый конечно у Димы интернет, но задачу решать надо :)

Итак, мы знаем, что фотография весит 3 МБ, или же 1024 КБ, или же 8192 КБИТ. Сначала мы передаём данные с телефона на компьютер (не с же телекинеза будем отправлять сразу :) ) и видим, что скорость в КБИТ. Делим вес фотографии на скорость. 8192 / 128 = 2^13/ 2^7 = 2^13-7 = 2^6 = 64. 64 секунды он будет загружать фото на компьютер. Запоминаем. Но нам нужно еще отправить фотографию в интернет. Видим скорость в КБ. Значит снова делим: 1024 / 128 = 8. 8 секунд. Складываем оба времени: 64 + 8 = 72.

Он потратил всего 72 секунды.

Поставь лучший ответ тебе не сложно - мне приятно :)

0,0(0 оценок)
Полный доступ
Позволит учиться лучше и быстрее. Неограниченный доступ к базе и ответам от экспертов и ai-bota Оформи подписку
logo
Начни делиться знаниями
Вход Регистрация
Что ты хочешь узнать?
Спроси ai-бота