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

Помогите решить по информатике питон

Лев Янковский Ученик (95), на голосовании 1 месяц назад
Качели


Ограничение по времени: 0.5 секунды
Ограничение по памяти: 256 мегабайт


Трое друзей - Аня, Боря и Саша
пришли на детскую площадку, чтобы
покачаться на качелях-балансире


Качели представляют собой длинную
балку, закреплённую в центре
на которую дети садятся с разных


концов.


Массы детей равны А, В и С кг. Чтобы
держать баланс на качелях, разница
масс на двух концах качелей должна
быть не более Д кг. Друзьям повезло:
рялом с площадкой оказалась груда
аточно тяжёлых камней. Один
из детей может взять с собой любой камень, чтобы сделать разность масс


на концах качелей допустимой


Помогите друзьям определить


минимальную массу камня, благодаря
которому они смогут покачаться


на качелях.


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


Программа получает на вход три числа
А, В, С, записанных в отдельных
строках, — массы друзей. В четвёртой
строке записано число D
наибольшая допустимая разница масс
на концах качелей. Все числа целые,


положительные


и не превосходящие 109,


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


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


оптимально. Если камень им


не понадобится, программа должна
вывести число O.


Система оценки


Решения, правильно работающие, когда
все входные числа не превосходят 105
будут оцениваться в 40 баллова


Замечание


В первом примере Аня и Саша сядут


на одну сторону, их суммарная масса
будет равна 65 кг. На другую сторону
сядет Боря, взяв 15-килограммовый
камень, тогда масса Бори с камнем
составит 55 кг. Разница весов на концах
качелей примет значение 10 кг.
Во втором примере Аня и Боря сядут
одну сторону (50 кг), Саша
ругую сторону (45 кг). Разница
весов будет равна 5 кг, поэтому камень не понадобится
Голосование за лучший ответ
Вадим ааааа Ученик (144) 2 месяца назад
a = int(input())
b = int(input())
c = int(input())
d = int(input())
res = 0
maxs = max(a, max(b, c))
prav = a + b + c - maxs
if prav - maxs < d:
print(res)
else:
while prav - maxs > d:
res = res + 1
maxs += 1
print(res)

вот что получилось у меня, но он выдает не всегда верный ответ, а сам ошибку не могу найти. может у вас получиться доработать и поделиться решением
Вадим аааааУченик (144) 2 месяца назад
этот ответ, на 20 баллов, есть на 60
Алексей Елистратов Ученик (153) Вадим ааааа, скину ответ на 100 баллов за копейки
Аким РешетилоУченик (123) 2 месяца назад
А как его в три строки расставить правильно?
Вадим ааааа Ученик (144) Аким Решетило, если я правильно понял о чем ты, то просто вставь в поле для ответа. Оно расширяемое
Лев ЯнковскийУченик (95) 2 месяца назад
Большое спасибо тебе
Лев Янковский, так не выдает ответ программа,за что ему спасибо
Данил РотарьУченик (100) 2 месяца назад
напишите мне в тг @danilka_aaaa срочно киньте задачу на 100 баллов
мобилы с собой нету кто скинет скину 200
Данил Ротарь, зачем вам эта олимпиада ваще, зачем деньги платить за это, смысл вас от баллов?
ヴァレリア ディアチェンコУченик (100) 2 месяца назад
А на каком языке программирования?
Вадим ааааа Ученик (144) ヴァレリア ディアチェンコ, питон
Алексей ЕлистратовУченик (153) 2 месяца назад
Отво на 100 баллов есть, тг @eleksius
Алексей ЕлистратовПрофи (718) 2 месяца назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
paulcucumber Знаток (373) 2 месяца назад
 m = sorted([int(input()) for i in range(3)] + [0]) 
d = int(input())
l = -1
r = abs(2 * m[-1] - sum(m))
while r - l > 1:
m[0] = (l + r) // 2
for mask in range(16):
s = 0
for i in range(4):
if mask & 1 != False:
s += m[i]
else:
s -= m[i]
mask >>= 1
if d >= s >= -d:
r = m[0]
break
else:
l = m[0]
print(r)
Елена ЩербаковаУченик (156) 2 месяца назад
Это на каком языке прогроамирования?
Аким РешетилоУченик (123) 2 месяца назад
Остальные делали?
В интернете скидывали решения на остальные задачи, но они неправильные
Roman Danilchenko Ученик (165) Аким Решетило, я сделал все кроме 4
Козлова ДарьяУченик (90) 2 месяца назад
О, полностью правильный ответ! Спасибо большое!
Maybe ЛебедевУченик (118) 2 месяца назад
Ура!!! На 100 балов
Maybe Лебедев, привет можешь подсказать ответы по олимпиаде
София МирошниченкоУченик (173) 2 месяца назад
Спасибо большое
Настя ВолодинаУченик (120) 2 месяца назад
ответ правильный, спасибо огромное!
Настя ВолодинаУченик (120) 2 месяца назад
Вдоль прямой улицы на равном расстоянии располагаются
N
домов. Будем считать расстояние между домами за единицу длины.

Около каждого дома можно поставить один фонарь. Всего имеется
A
фонарей, которые могут освещать дома на расстоянии
X
(включительно), и
B
фонарей, которые могут освещать дома на расстоянии
Y
(включительно). В частности, при
X=0
или
Y=0
такой фонарь освещает только тот дом, у которого он установлен.

Вам необходимо расставить минимальное число фонарей так, чтобы все дома были освещены. Один дом может быть освещён несколькими фонарями. Освещать участки улицы между домами необязательно.
реши ещё пж
Roman DanilchenkoУченик (165) 2 месяца назад
ой кроме 2
Roman Danilchenko, а можешь поделится?
Алексей ЕлистратовУченик (153) 2 месяца назад
У меня есть ответы, все номера, тг @eleksius
Roman DanilchenkoУченик (165) 2 месяца назад
я как закончу скину
немного осталось
Илья Донченко Ученик (106) Roman Danilchenko, а со мной сможете поделится ?
Илья ДонченкоУченик (106) 2 месяца назад
На каком это языке ?
Краш СяовеновУченик (119) 2 месяца назад
я ваши руки целовать
Roman DanilchenkoУченик (165) 2 месяца назад
есс
Roman DanilchenkoУченик (165) 2 месяца назад
ток быстрее я скоро удалю сообщение чтоб мне не спамили
Илья ДонченкоУченик (106) 2 месяца назад
помогли бы тоже (
Алексей ЕлистратовПрофи (718) 2 месяца назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Roman DanilchenkoУченик (165) 2 месяца назад
у меня бесплатно)
Анна ГеннадьевнаУченик (67) 2 месяца назад
СПАСИБО БОЛЬШОЕ! чел, лучший
Илья Донченко Ученик (106) Анна Геннадьевна, Сможете скинуть 2 задачу ?
Roman DanilchenkoУченик (165) 2 месяца назад
пипец моему тг
Илья Донченко Ученик (106) Roman Danilchenko, Да почему я написал один из первых, а ты меня заблокал, а другим скидываешь (
- Ученик (98) 2 месяца назад
точно?
Алексей ЕлистратовУченик (153) 2 месяца назад
У меня есть ответы, все номера, тг @eleksius
Алексей ЕлистратовПрофи (718) 2 месяца назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Артём Королёв Профи (789) 2 месяца назад
A = int(input()) # 1 ребенок
B = int(input()) # 2 ребенок
C = int(input()) # 3 ребенок
D = int(input()) # Разница
list = (A, B , C)
list_k = sorted(list)
if list_k[2] - list_k[1] - list_k[0] <=D and list_k[2] - list_k[1] - list_k[0] >= 0 - D:
print(0)
if list_k[2] - list_k[1] - list_k[0] > 0:
print(list_k[2] - list_k[1] - list_k[0] - D)
elif list_k[2] - list_k[1] - list_k[0] + D < 0:
print(-(list_k[2] - list_k[1] - list_k[0] + D))
Иван ПольскийУченик (160) 2 месяца назад
спасибо))
ДимонЗнаток (258) 2 месяца назад
спасибо, не знаю почему так мало лайков
Алексей ЕлистратовУченик (153) 2 месяца назад
У меня есть ответы, все номера, тг @eleksius
Алексей ЕлистратовПрофи (718) 2 месяца назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Юра Черников Знаток (291) 2 месяца назад
def min_stone_weight(A, B, C, D):
# Рассчитываем разницу масс для всех трех вариантов
# 1. (A + B) vs C
# 2. (A + C) vs B
# 3. (B + C) vs A

diffs = [
abs((A + B) - C),
abs((A + C) - B),
abs((B + C) - A)
]

# Если хотя бы одна из разниц меньше либо равна D, камень не нужен
if min(diffs) <= D:
return 0

# Иначе находим минимальный камень для уравновешивания
return min(diff - D for diff in diffs)

# Пример использования
A = int(input()) # Масса Ани
B = int(input()) # Масса Бори
C = int(input()) # Масса Саши
D = int(input()) # Допустимая разница масс

# Выводим минимальный вес камня
print(min_stone_weight(A, B, C, D))
100 баллов
Алексей ЕлистратовУченик (153) 2 месяца назад
У меня есть ответы, все номера, тг @eleksius
Алексей ЕлистратовПрофи (718) 2 месяца назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
mruser112288Ученик (216) 2 месяца назад
Я немного изменил код, и он действительно на 10 баллов. Спасибо большое
mruser112288 Ученик (216) mruser112288, 100*
Евгений Саврасов Знаток (462) 2 месяца назад
#include <iostream>
#include <vector>
#include <algorithm>

using namespace std;

bool canSwing(int a, int b, int c, int d) {
int diff = abs(a - b) + abs(b - c);
return diff <= d;
}

int main() {
int a, b, c, d;
cin >> a >> b >> c >> d;

if (canSwing(a, b, c, d)) {
cout << 0 << endl;
} else {
int minWeight = d - (abs(a - b) + abs(b - c));
cout << minWeight << endl;
}

return 0;
}

С++
Тимофей ВолодинЗнаток (392) 2 месяца назад
неверно, дуралей подставной
Алексей ЕлистратовУченик (153) 2 месяца назад
У меня есть ответы, все номера, тг @eleksius, пишите быстрее
Алексей ЕлистратовПрофи (718) 2 месяца назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Алексей Елистратов Профи (718) 2 месяца назад
у меня есть ответы
Ваня МанаковУченик (101) 2 месяца назад
скинь пожалуйста
Алексей Елистратов Профи (718) Ваня Манаков, тг @eleksius напиши
Алексей ЕлистратовПрофи (718) 2 месяца назад
тг @eleksius, пишите! все ответы есть, в интернете их нет
Архип Уткин Ученик (176) 2 месяца назад
def min_stone_mass(A, B, C, D):
combinations = [
(A + B, C),
(A + C, B),
(B + C, A)
]

min_mass_needed = float('inf')

for left_mass, right_mass in combinations:
difference = left_mass - right_mass

if abs(difference) <= D:
return 0
mass_needed = abs(difference) - D
min_mass_needed = min(min_mass_needed, mass_needed)

return max(min_mass_needed, 0)

A = int(input().strip())
B = int(input().strip())
C = int(input().strip())
D = int(input().strip())

result = min_stone_mass(A, B, C, D)

print(result)
БРИНГА PLAY Чмыхалов Ученик (134) 2 месяца назад
A = int(input())
B = int(input())
C = int(input())
d = int(input())

m = [A, B, C]
min_w = float('inf')

for i in range(3):
x = m[i]
y = sum(m) - x
diff = abs(x - y)

if diff <= d:
min_w = 0
else:
stone_w = diff - d
min_w = min(min_w, stone_w)

print(min_w)

у меня 100 баллов
Похожие вопросы