Форум программистов, компьютерный форум, киберфорум
Python: Решение задач
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.69/13: Рейтинг темы: голосов - 13, средняя оценка - 4.69
0 / 0 / 0
Регистрация: 03.06.2020
Сообщений: 40

Лес

19.12.2021, 14:05. Показов 2832. Ответов 5

Студворк — интернет-сервис помощи студентам
Миша заблудился в лесу и пытается выйти. Он составил план маршрута выхода из леса. План состоит из N прямолинейных отрезков пути. Сначала Миша идёт a1 метров на север, потом a2 метров на восток, потом a3 метров на юг, затем a4 метров на запад, затем он опять начинает повторять направления в порядке север, восток, юг, запад, то есть a5 метров он проходит на север, a6 метров на восток и т.д.

Оказалось, что для того, чтобы выйти из леса из его первоначальной точки, ему нужно было пройти ровно K метров в любом из четырёх направлений, то есть первоначально Миша находится в центре квадрата со стороной 2K метров.

Введём систему координат, в которой Миша первоначально находился в центре координат, ось OX направлена на восток, ось OY направлена на север, а единица измерения равна 1 метру. Определите, в какой точке Миша выйдет из леса (впервые окажется на границе леса), если будет следовать своему плану, или в какой точке его маршрут закончится, если он не выйдет из леса.

Входные данные
Первая строка входных данных содержит целое положительное число K (1 ≤ K ≤ 109) — расстояние от начального расположения Миши до четырёх сторон квадрата (границ леса). Вторая строка содержит целое положительное число N (1 ≤ N ≤ 105) — количество отрезков в плане перемещений Миши. Следующие N строк содержат по одному числу a1, a2, ..., aN (1 ≤ ai ≤ 109) — длины отрезков в плане Миши в направлениях север, восток, юг, запад и т.д.

Выходные данные
Программа должна вывести два целых числа x и y — координаты точки, в которой Миша выйдет из леса (то есть маршрут Миши впервые окажется на границе леса). Если же Миша не выйдет из леса, выведите координаты точки, в которой завершится его маршрут.

Тесты:
1) Ввод:
3
6
2
1
3
3
5
4
Вывод
-2 3
2) Ввод:
2 1 1
Вывод 0 1
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
19.12.2021, 14:05
Ответы с готовыми решениями:

Лес
Миша заблудился в лесу и пытается выйти из него. Он проходит A шагов на север, затем B шагов на восток, затем C шагов на юг, D шагов на...

Лес деревьев
Помогите, пожалуйста, с решением задачи Напишите решение на Python или C++ Дан лес. Найдите количество деревьев в нём. ...

Задача - Лес
Миша заблудился в лесу и пытается выйти из него. Он проходит A шагов на север, затем B шагов на восток, затем C шагов на юг, D шагов на...

5
Эксперт PythonЭксперт Java
19530 / 11067 / 2931
Регистрация: 21.10.2017
Сообщений: 23,294
19.12.2021, 14:09
Буквально 6 строчек вниз на главной.
Задача - Лес
2
0 / 0 / 0
Регистрация: 03.06.2020
Сообщений: 40
19.12.2021, 14:57  [ТС]
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Буквально 6 строчек вниз на главной.
Задача - Лес
Извиняюсь, в разделе задач поискал, проморгал, видимо)

Добавлено через 21 минуту
Цитата Сообщение от iSmokeJC Посмотреть сообщение
Буквально 6 строчек вниз на главной.
Задача - Лес
А, нет, не сработало
====== Тест #1 =======
--- Входные данные: размер 16 ---
3
6
2
1
3
3
5
4

--- Результат работы: размер 2 ---
3

--- Правильный ответ: размер 5 ---
-2 3

--- Поток ошибок: размер 0 ---

--- Вывод проверяющей программы: размер 78 ---
Несовпадение ответов: [1]: вывод: 3, эталон: -2

====== Тест #2 =======
--- Входные данные: размер 6 ---
2
1
1

--- Результат работы: размер 0 ---

--- Поток ошибок: размер 129 ---
Traceback (most recent call last):
File "./012640", line 8, in <module>
D = int(input())
EOFError: EOF when reading a line

Для кода
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
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
27 / 21 / 8
Регистрация: 14.12.2021
Сообщений: 36
19.12.2021, 15:50
Естественно не сработает, это же разные задачи.
0
19.12.2021, 22:20

Не по теме:

Даже стало интересно, с какого ресурса набежало столько спасателей-поисковиков. Напишите в ЛС кто-нибудь, плиз, чтобы правила не нарушать :)

0
20.12.2021, 06:55

Не по теме:

thyrex, очередная школьная олимпиадка вроде как

0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
20.12.2021, 06:55
Помогаю со студенческими работами здесь

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

Задача "Лес"
Помогите решить задание, прикрепил картинкой

Случайный лес
Всем доброго времени суток! подскажите пожалуйста! есть такой код %%time # Set target variables, all other variables will be...

Две близняшки Аня и Яна ходили в лес за грибами
Аня и Яна Две близняшки Аня и Яна ходили в лес за грибами. Аня нашла x грибов, а Яна y грибов (x &lt; y). Их старший брат Ваня заметил,...

Коротышки из Цветочного города очень любят ходить в лес собирать ягоды, грибы, орехи
Коротышки из Цветочного города очень любят ходить в лес собирать ягоды, грибы, орехи. Правда, за грибами и орехами приходится ходить с...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
6
Ответ Создать тему
Новые блоги и статьи
Использование SDL3-callbacks вместо функции main() на Android, Desktop и WebAssembly
8Observer8 24.01.2026
Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а привычная функция main(). . .
моя боль
iceja 24.01.2026
Выложила интерполяцию кубическими сплайнами www. iceja. net REST сервисы временно не работают, только через Web. Написала за 56 рабочих часов этот сайт с нуля. При помощи perplexity. ai PRO , при. . .
Модель сукцессии микоризы
anaschu 24.01.2026
Решили писать научную статью с неким РОманом
http://iceja.net/ математические сервисы
iceja 20.01.2026
Обновила свой сайт http:/ / iceja. net/ , приделала Fast Fourier Transform экстраполяцию сигналов. Однако предсказывает далеко не каждый сигнал (см ограничения http:/ / iceja. net/ fourier/ docs ). Также. . .
http://iceja.net/ сервер решения полиномов
iceja 18.01.2026
Выкатила http:/ / iceja. net/ сервер решения полиномов (находит действительные корни полиномов методом Штурма). На сайте документация по API, но скажу прямо VPS слабенький и 200 000 полиномов. . .
Расчёт переходных процессов в цепи постоянного тока
igorrr37 16.01.2026
/ * Дана цепь(не выше 3-го порядка) постоянного тока с элементами R, L, C, k(ключ), U, E, J. Программа находит переходные токи и напряжения на элементах схемы классическим методом(1 и 2 з-ны. . .
Восстановить юзерскрипты Greasemonkey из бэкапа браузера
damix 15.01.2026
Если восстановить из бэкапа профиль Firefox после переустановки винды, то список юзерскриптов в Greasemonkey будет пустым. Но восстановить их можно так. Для этого понадобится консольная утилита. . .
Сукцессия микоризы: основная теория в виде двух уравнений.
anaschu 11.01.2026
https:/ / rutube. ru/ video/ 7a537f578d808e67a3c6fd818a44a5c4/
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru