Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

C++ или Питон прост решите

Gogrod Ученик (131), закрыт 9 месяцев назад
Летний сезон
Наступил летний сезон, и управление транспорта города Л дало распоряжение заменить у всех городских автобусов зимние шины на летние.

После несложных подсчетов выяснилось, что для замены потребуется ровно n
шин. Известно, что в городе Л имеются автобусы двух типов: с 4
колесами и с 6
колесами. Однако, вы не знаете, сколько именно автобусов находятся в распоряжении управления транспорта. Поэтому вы решили определить, какое минимальное и какое максимальное количество автобусов может быть в городе, зная, что суммарное количество колес у всех автобусов города равно n
.

Формат входных данных
Единственная строка содержит одно целое число n
(1≤n≤1018
) — суммарное количество колес у автобусов города Л.

Формат выходных данных
Выведите два целых числа x
и y
(1≤x≤y
) — минимальное и максимальное возможное количество автобусов, находящихся в городе Л.

В случае, если для данного n
не существует подходящего количества автобусов, выведите число −1
.
Ввод Вывод

4 1 1

9 -1

30 5 7
Лучший ответ
Сергей Гений (56217) 10 месяцев назад
 #include  

int main()
{
int n1 = 4, n2 = 6;
size_t n;
std::cin >> n;
if (n < 4 || n & 1) { std::cout << -1; return 0; }
size_t a_min = n / n2, a_max = n / n1;
if (n - a_min * n2) ++a_min;
std::cout << a_min << " " << a_max;
}
ПапаВысший разум (121650) 10 месяцев назад
А что, нельзя было так?
 if (n < 4 || n & 1) std::cout << -1;
else std::cout << (n + n2 - 1) / n2 << ' ' << n / n1 << endl;
Сергей Гений (56217) Папа, Можно но у меня нет определенного плана заранее, поэтому я всего лишь Просветленный и пользуюсь "костылями")
ТрифонЗнаток (315) 10 месяцев назад
не работает
Остальные ответы
Professional Professional Мудрец (15210) 10 месяцев назад
Эту задачу можно решить с помощью математического анализа. Давайте рассмотрим два возможных случая: когда все автобусы имеют 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`, и он выдаст вам минимальное и максимальное количество автобусов.
GogrodУченик (131) 10 месяцев назад
не работает
VitnessПросветленный (35173) 10 месяцев назад
Рассмотрим два возможных случая и забьем на третий.. эх чатгпт...
ПапаВысший разум (121650) 10 месяцев назад
Не надоело делать из себя посмешище?
Professional Professional Мудрец (15210) Папа, посмешище тут только ты
user user Оракул (58385) 10 месяцев назад
Алгоритм решения задачи:

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")
```
GogrodУченик (131) 10 месяцев назад
не работает
user user Оракул (58385) Gogrod, Ну GPT, ошибся... Искусственный интеллект, еще не доработан....
GogrodУченик (131) 10 месяцев назад
пан
GogrodУченик (131) 10 месяцев назад
бл 18 минут до конца
Похожие вопросы