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

Оптимизация раскраски плиток

05.05.2020, 19:43. Показов 32249. Ответов 7
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
У Пети есть X грамм краски, а у Васи — Y грамм краски. Одного грамма краски хватает, чтобы покрасить плитку 1×1. На заводе есть неограниченное количество квадратных плиток любых размеров. Петя выберет максимальную плитку, на которую у него хватит краски. Вася поступит аналогично. Таня работает в плановом отделе, и в её интересах сделать так, чтобы суммарно было потрачено как можно больше краски. Поэтому Таня интересуется: а что если Петя отдаст всю свою краску Васе? Получится ли тогда потратить больше краски или нет?

В данной задаче запрещено использовать функцию sqrt, а также операцию возведения в степень.

Входные данные

В двух строках входного файла содержатся натуральные числа x и y — количество краски у Пети и Васи соответственно.

Все числа не превышают 1000.

Выходные данные

Если выгоднее будет отдать всю краску Васе, то выведите на экран "Petya gives paint to Vasya".

Если выгоднее оставить краску у Пети, то выведите на экран "Petya leaves paint to himself".

Если расход краски в обоих случаях одинаков, то выведите "Equal".

Примеры
Ввод
Вывод
10
10
Petya leaves paint to himself
10
20
Equal
10
7
Petya gives paint to Vasya
0
Лучшие ответы (1)
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
05.05.2020, 19:43
Ответы с готовыми решениями:

Возможно ли построить из шести плиток коробку
Иван работает на заводе, который производит тяжелую технику. Его работа очень проста – он собирает...

Подсчитать количество способов замощения полосы 2 × n с помощью плиток
Имеются прямоугольные плитки двух типов — одноклеточные квадраты размером 1 × 1 и двухклеточные...

Удаление плиток в игре при определенном условии
Всем привет. Пробую писать игру и возникла проблема. Если поле 10 на 10, в каждой ячейке которого...

7
Заклинатель змей
 Аватар для DobroAlex
705 / 560 / 219
Регистрация: 30.04.2016
Сообщений: 2,605
06.05.2020, 00:38
Лучший ответ Сообщение было отмечено Ender227 как решение

Решение

Ender227, На завод!
2
9 / 9 / 0
Регистрация: 18.03.2020
Сообщений: 61
06.05.2020, 00:54  [ТС]
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
plitka = []
i = 1
while True:
    if i*i <= 2000:
        plitka.append(i*i)
        i += 1
    else:
        break
    
def get_max(limit):
    selected = 1
    for a in plitka:
        if a <= limit:
            selected = a
        else:
            break
    return selected
 
Petya = int(input())
Vasya = int(input())
otdelno = get_max(Petya) + get_max(Vasya)
vmeste = get_max(Petya+Vasya)
if otdelno > vmeste:
    print('Petya leaves paint to himself')
elif otdelno == vmeste:
    print('Equal')
else:
    print('Petya gives paint to Vasya')
3
1 / 1 / 0
Регистрация: 06.07.2020
Сообщений: 1
06.07.2020, 15:33
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
def paint_used(paint_avaliable):
  size = 1
  amount_of_paint = size * size
  while size * size <= paint_avaliable:
    amount_of_paint = size * size
    size += 1
  return amount_of_paint
x, y = int(input()), int(input())
if paint_used(x) + paint_used(y) == paint_used(x + y):
  print('Equal')
elif paint_used(x) + paint_used(y) > paint_used(x + y):
  print('Petya leaves paint to himself')
else:
  print('Petya gives paint to Vasya')
Вроде самое простое
1
0 / 0 / 0
Регистрация: 07.06.2021
Сообщений: 1
07.06.2021, 02:43
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
def used_paint(mass):
    i = 0
    a = -1
    while i*i < mass:
        a += 1
        i += 1
    return a*a
 
def compare(x, y):
    a = paint(x)
    b = paint(y)
    c = paint(x + y)
    if (a+b) < (c):
        return "Petya gives paint to Vasya"
    elif (a+b) > (c):
        return "Petya leaves paint to himself"
    elif (a+b) == c:
        return "Equal"
 
x = int(input())
y = int(input())
print(compare(x, y))
0
0 / 0 / 0
Регистрация: 04.06.2025
Сообщений: 3
10.07.2025, 22:29
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
def one(a,b):
    for i in range(1,32):
        if i*i<=a and (i+1)*(i+1)>a:
            c=i*i
 
    for j in range(1,32):
        if j*j<=b and (j+1)*(j+1)>b:
            d=j*j
 
    for l in range(1,50):
        if l*l<=(a+b) and (l+1)*(l+1)>(a+b):            
            e=l*l
 
    if c+d<e:
        print("Petya gives paint to Vasya")
    elif c+d==e:
        print("Equal")
    elif c+d>e:
        print("Petya leaves paint to himself")
 
       
a,b=int(input()),int(input())
one(a,b)
0
1 / 1 / 0
Регистрация: 24.08.2025
Сообщений: 1
24.08.2025, 16:15
Написал вот такой код, первые 4 опции проходит, после выдает ошибку, если она существует, буду очень признателен за помощь!)

Добавлено через 4 минуты
Python
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
a = int(input())
b = int(input())
def sq(a):
    d = 0
    while a > d * d:
        d = d + 1
    return (d - 1) * (d - 1)
def ans(a,b):
    if sq(a) + sq(b) > sq(a + b):
        print('Petya leaves paint to himself')
    elif sq(a) + sq(b) == sq(a + b):
        print('Equal')
    else:
        print('Petya gives paint to Vasya')
ans(a,b)
1
0 / 0 / 0
Регистрация: 04.06.2025
Сообщений: 3
24.08.2025, 16:35
Ошибка в том что у тебя функция sq(а) принимает только один параметр, а в 9 и 11 строчке ты обращаешься sq(a,b) и задаешь 2 параметра
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
24.08.2025, 16:35
Помогаю со студенческими работами здесь

Различные способы раскраски грани куба
Сколькими различными способами можно раскрасить грани куба в четыре цвета. Напечатать возможные...

Алгоритм параллельной раскраски графов
Всем добрейший вечерок. Мне на предмете по изучению эвристических алгоритмов дали задачу. ...

Выполните алгоритм раскраски выпуклого и монотонного многоугольника
Если r=0, выполните алгоритм раскраски выпуклого и монотонного многоугольника.

Если r=1, выполнить алгоритм иррациональной раскраски полигонов
Если r=1, выполнить алгоритм иррациональной раскраски полигонов.

"Раскраска текста"
Как сделать, чтобы текст, который выдается в консоли &quot;раскрашивался&quot; ? Если я правильно понял с...


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

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Как объединить две одинаковые БД Access с разными данными
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru