Летний сезон
Наступил летний сезон, и управление транспорта города Л дало распоряжение заменить у всех городских автобусов зимние шины на летние.
После несложных подсчетов выяснилось, что для замены потребуется ровно n
шин. Известно, что в городе Л имеются автобусы двух типов: с 4
колесами и с 6
колесами. Однако, вы не знаете, сколько именно автобусов находятся в распоряжении управления транспорта. Поэтому вы решили определить, какое минимальное и какое максимальное количество автобусов может быть в городе, зная, что суммарное количество колес у всех автобусов города равно n
.
Формат входных данных
Единственная строка содержит одно целое число n
(1≤n≤1018
) — суммарное количество колес у автобусов города Л.
Формат выходных данных
Выведите два целых числа x
и y
(1≤x≤y
) — минимальное и максимальное возможное количество автобусов, находящихся в городе Л.
В случае, если для данного n
не существует подходящего количества автобусов, выведите число −1
.
Ввод Вывод
4 1 1
9 -1
30 5 7
C/C++
C++ или Питон прост решите
#include
int main()
{
int n1 = 4, n2 = 6;
size_t n;
std::cin >> n;
if (n < 4 || n & 1) { std::cout
Михаил Арнаутов
А что, нельзя было так?
Николай Кузнецов
не работает
Алгоритм решения задачи:
1. Сначала проверяем, является ли число n кратным 2 или нечетным. Если n нечетное, то нет возможности собрать автобусы с целочисленным числом колес, поэтому выводим число -1.
2. Далее рассматриваем случаи, когда n четное. Проверяем, если число n делится на 4, то минимальное и максимальное количество автобусов равно n/4 и n/2 соответственно.
3. Если число n не делится на 4, то проверяем, можно ли разделить число n на два четных числа (x и y), сумма которых равна n. Для этого мы ищем наибольшее четное число, которое меньше или равно n/2 (это будет число y), а затем вычитаем это значение из числа n, чтобы найти число x.
4. Если мы не смогли найти два четных числа, сумма которых равна n, то нет возможности собрать автобусы с целочисленным числом колес, поэтому выводим число -1.
Реализация на языке Python:
```
n = int(input())
if n % 2 == 1: # проверяем, является ли n нечетным числом
print("-1")
else:
if n % 4 == 0: # если n делится на 4, то минимальное и максимальное количество автобусов равно n/4 и n/2 соответственно
print(int(n/4), int(n/2))
else:
y = n // 2
while y % 2 != 0: # ищем наибольшее четное число, которое меньше или равно n/2
y -= 1
x = n - y
if x % 2 == 0 and x > 0: # проверяем, полученное x - четное число и больше 0
print(int(x / 2), int(y / 2))
else:
print("-1")
```
1. Сначала проверяем, является ли число n кратным 2 или нечетным. Если n нечетное, то нет возможности собрать автобусы с целочисленным числом колес, поэтому выводим число -1.
2. Далее рассматриваем случаи, когда n четное. Проверяем, если число n делится на 4, то минимальное и максимальное количество автобусов равно n/4 и n/2 соответственно.
3. Если число n не делится на 4, то проверяем, можно ли разделить число n на два четных числа (x и y), сумма которых равна n. Для этого мы ищем наибольшее четное число, которое меньше или равно n/2 (это будет число y), а затем вычитаем это значение из числа n, чтобы найти число x.
4. Если мы не смогли найти два четных числа, сумма которых равна n, то нет возможности собрать автобусы с целочисленным числом колес, поэтому выводим число -1.
Реализация на языке Python:
```
n = int(input())
if n % 2 == 1: # проверяем, является ли n нечетным числом
print("-1")
else:
if n % 4 == 0: # если n делится на 4, то минимальное и максимальное количество автобусов равно n/4 и n/2 соответственно
print(int(n/4), int(n/2))
else:
y = n // 2
while y % 2 != 0: # ищем наибольшее четное число, которое меньше или равно n/2
y -= 1
x = n - y
if x % 2 == 0 and x > 0: # проверяем, полученное x - четное число и больше 0
print(int(x / 2), int(y / 2))
else:
print("-1")
```
Эту задачу можно решить с помощью математического анализа. Давайте рассмотрим два возможных случая: когда все автобусы имеют 4 колеса и когда все автобусы имеют 6 колес.
1. Случай с автобусами, имеющими 4 колеса:
Каждый автобус имеет 2 пары колес, поэтому общее количество автобусов будет равно n/4. Однако, чтобы получить минимальное количество автобусов, нужно убедиться, что n делится на 4 без остатка. Если это не так, то минимальное количество автобусов будет равно n/4 + 1. Максимальное количество автобусов всегда будет равно n/4.
2. Случай с автобусами, имеющими 6 колес:
Каждый автобус имеет 3 пары колес, поэтому общее количество автобусов будет равно n/6. Опять же, нужно убедиться, что n делится на 6 без остатка, чтобы получить минимальное количество автобусов. Если это не так, то минимальное количество автобусов будет равно n/6 + 1. Максимальное количество автобусов всегда будет равно n/6.
Используя эти правила, можно решить задачу. Давайте преобразуем это в код на Python:
```python
n = int(input())
# Проверяем случай с автобусами, имеющими 4 колеса
if n % 4 == 0:
min_buses_4 = n // 4
else:
min_buses_4 = n // 4 + 1
# Проверяем случай с автобусами, имеющими 6 колес
if n % 6 == 0:
min_buses_6 = n // 6
else:
min_buses_6 = n // 6 + 1
# Проверяем, существует ли подходящее количество автобусов
if min_buses_4 * 4 > n and min_buses_6 * 6 > n:
print(-1)
else:
print(min_buses_4, min_buses_6)
```
Вы можете запустить этот код, введя значение `n`, и он выдаст вам минимальное и максимальное количество автобусов.
1. Случай с автобусами, имеющими 4 колеса:
Каждый автобус имеет 2 пары колес, поэтому общее количество автобусов будет равно n/4. Однако, чтобы получить минимальное количество автобусов, нужно убедиться, что n делится на 4 без остатка. Если это не так, то минимальное количество автобусов будет равно n/4 + 1. Максимальное количество автобусов всегда будет равно n/4.
2. Случай с автобусами, имеющими 6 колес:
Каждый автобус имеет 3 пары колес, поэтому общее количество автобусов будет равно n/6. Опять же, нужно убедиться, что n делится на 6 без остатка, чтобы получить минимальное количество автобусов. Если это не так, то минимальное количество автобусов будет равно n/6 + 1. Максимальное количество автобусов всегда будет равно n/6.
Используя эти правила, можно решить задачу. Давайте преобразуем это в код на Python:
```python
n = int(input())
# Проверяем случай с автобусами, имеющими 4 колеса
if n % 4 == 0:
min_buses_4 = n // 4
else:
min_buses_4 = n // 4 + 1
# Проверяем случай с автобусами, имеющими 6 колес
if n % 6 == 0:
min_buses_6 = n // 6
else:
min_buses_6 = n // 6 + 1
# Проверяем, существует ли подходящее количество автобусов
if min_buses_4 * 4 > n and min_buses_6 * 6 > n:
print(-1)
else:
print(min_buses_4, min_buses_6)
```
Вы можете запустить этот код, введя значение `n`, и он выдаст вам минимальное и максимальное количество автобусов.
Christian Miller
не работает
Akmal Umarov
Рассмотрим два возможных случая и забьем на третий.. эх чатгпт...
Михаил Арнаутов
Не надоело делать из себя посмешище?
Похожие вопросы
- Помогите решить лабораторную c++
- Помогите решить задачу по программированию на C++
- C++ Выведите в порядке возрастания все простые числа на отрезке [l;r]. Оформите решение в виде функции bool
- Решить билет по c++
- Помогите решить задачу пожалуйста, в C++
- Задача по программированию. Решить на Python или C++
- В чем ошибка простого кода C++?
- Помогите решить задачу по C++!
- Помогите решить задание на C++
- Написать массив на C(не C++) пожалуйста!!! простым языком с пояснениями