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

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

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


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


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


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


концов.


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


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


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


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


на качелях.


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


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


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


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


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


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


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


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


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


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


Замечание


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


на одну сторону, их суммарная масса
будет равна 65 кг. На другую сторону
сядет Боря, взяв 15-килограммовый
камень, тогда масса Бори с камнем
составит 55 кг. Разница весов на концах
качелей примет значение 10 кг.
Во втором примере Аня и Боря сядут
одну сторону (50 кг), Саша
ругую сторону (45 кг). Разница
весов будет равна 5 кг, поэтому камень не понадобится
9 ответов
Вадим ааааа Ученик (142) 1 месяц назад
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)

вот что получилось у меня, но он выдает не всегда верный ответ, а сам ошибку не могу найти. может у вас получиться доработать и поделиться решением
Вадим аааааУченик (142) 1 месяц назад
этот ответ, на 20 баллов, есть на 60
Алексей Елистратов Ученик (140) Вадим ааааа, скину ответ на 100 баллов за копейки
Аким РешетилоУченик (118) 1 месяц назад
А как его в три строки расставить правильно?
Вадим ааааа Ученик (142) Аким Решетило, если я правильно понял о чем ты, то просто вставь в поле для ответа. Оно расширяемое
Лев ЯнковскийУченик (95) 1 месяц назад
Большое спасибо тебе
Лев Янковский, так не выдает ответ программа,за что ему спасибо
Данил РотарьУченик (100) 1 месяц назад
напишите мне в тг @danilka_aaaa срочно киньте задачу на 100 баллов
мобилы с собой нету кто скинет скину 200
Данил Ротарь, зачем вам эта олимпиада ваще, зачем деньги платить за это, смысл вас от баллов?
ヴァレリア ディアチェンコУченик (100) 1 месяц назад
А на каком языке программирования?
Вадим ааааа Ученик (142) ヴァレリア ディアチェンコ, питон
Алексей ЕлистратовУченик (140) 1 месяц назад
Отво на 100 баллов есть, тг @eleksius
Алексей ЕлистратовПрофи (708) 4 недели назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
paulcucumber Знаток (370) 1 месяц назад
 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)
Елена ЩербаковаУченик (152) 1 месяц назад
Это на каком языке прогроамирования?
Аким РешетилоУченик (118) 1 месяц назад
Остальные делали?
В интернете скидывали решения на остальные задачи, но они неправильные
Roman Danilchenko Ученик (165) Аким Решетило, я сделал все кроме 4
Козлова ДарьяУченик (90) 1 месяц назад
О, полностью правильный ответ! Спасибо большое!
Maybe ЛебедевУченик (116) 1 месяц назад
Ура!!! На 100 балов
Maybe Лебедев, привет можешь подсказать ответы по олимпиаде
София МирошниченкоУченик (168) 1 месяц назад
Спасибо большое
Настя ВолодинаУченик (113) 1 месяц назад
ответ правильный, спасибо огромное!
Настя ВолодинаУченик (113) 1 месяц назад
Вдоль прямой улицы на равном расстоянии располагаются
N
домов. Будем считать расстояние между домами за единицу длины.

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

Вам необходимо расставить минимальное число фонарей так, чтобы все дома были освещены. Один дом может быть освещён несколькими фонарями. Освещать участки улицы между домами необязательно.
реши ещё пж
Roman DanilchenkoУченик (165) 4 недели назад
ой кроме 2
Roman Danilchenko, а можешь поделится?
Алексей ЕлистратовУченик (140) 4 недели назад
У меня есть ответы, все номера, тг @eleksius
Roman DanilchenkoУченик (165) 4 недели назад
я как закончу скину
немного осталось
Илья Донченко Ученик (101) Roman Danilchenko, а со мной сможете поделится ?
Илья ДонченкоУченик (101) 4 недели назад
На каком это языке ?
Краш СяовеновУченик (110) 4 недели назад
я ваши руки целовать
Roman DanilchenkoУченик (165) 4 недели назад
есс
Roman DanilchenkoУченик (165) 4 недели назад
ток быстрее я скоро удалю сообщение чтоб мне не спамили
Илья ДонченкоУченик (101) 4 недели назад
помогли бы тоже (
Алексей ЕлистратовПрофи (708) 4 недели назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Roman DanilchenkoУченик (165) 4 недели назад
у меня бесплатно)
Анна ГеннадьевнаУченик (60) 4 недели назад
СПАСИБО БОЛЬШОЕ! чел, лучший
Илья Донченко Ученик (101) Анна Геннадьевна, Сможете скинуть 2 задачу ?
Roman DanilchenkoУченик (165) 4 недели назад
пипец моему тг
Илья Донченко Ученик (101) Roman Danilchenko, Да почему я написал один из первых, а ты меня заблокал, а другим скидываешь (
- Ученик (83) 1 месяц назад
точно?
Алексей ЕлистратовУченик (140) 4 недели назад
У меня есть ответы, все номера, тг @eleksius
Алексей ЕлистратовПрофи (708) 4 недели назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Артём Королёв Профи (789) 1 месяц назад
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))
Иван ПольскийУченик (155) 1 месяц назад
спасибо))
ДимонЗнаток (251) 1 месяц назад
спасибо, не знаю почему так мало лайков
Алексей ЕлистратовУченик (140) 4 недели назад
У меня есть ответы, все номера, тг @eleksius
Алексей ЕлистратовПрофи (708) 4 недели назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Юра Черников Знаток (274) 1 месяц назад
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 баллов
Алексей ЕлистратовУченик (140) 4 недели назад
У меня есть ответы, все номера, тг @eleksius
Алексей ЕлистратовПрофи (708) 4 недели назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
mruser112288Ученик (210) 4 недели назад
Я немного изменил код, и он действительно на 10 баллов. Спасибо большое
mruser112288 Ученик (210) mruser112288, 100*
Евгений Саврасов Знаток (377) 1 месяц назад
#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;
}

С++
Тимофей ВолодинЗнаток (348) 4 недели назад
неверно, дуралей подставной
Алексей ЕлистратовУченик (140) 4 недели назад
У меня есть ответы, все номера, тг @eleksius, пишите быстрее
Алексей ЕлистратовПрофи (708) 4 недели назад
у меня ответы дешевле всех! почти все 100 баллов, писал сам, в интернете нет! тг @eleksius
Алексей Елистратов Профи (708) 4 недели назад
у меня есть ответы
Ваня МанаковУченик (101) 4 недели назад
скинь пожалуйста
Алексей Елистратов Профи (708) Ваня Манаков, тг @eleksius напиши
Алексей ЕлистратовПрофи (708) 4 недели назад
тг @eleksius, пишите! все ответы есть, в интернете их нет
Архип Уткин Ученик (166) 4 недели назад
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 Чмыхалов Ученик (130) 4 недели назад
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 баллов
Похожие вопросы