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

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

05.05.2020, 19:43. Показов 32680. Ответов 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
Ответ Создать тему
Новые блоги и статьи
Переходник USB-CAN-GPIO
Eddy_Em 20.03.2026
Достаточно давно на работе возникла необходимость в переходнике CAN-USB с гальваноразвязкой, оный и был разработан. Однако, все меня терзала совесть, что аж 48-ногий МК используется так тупо: просто. . .
Оттенки серого
Argus19 18.03.2026
Оттенки серого Нашёл в интернете 3 прекрасных модуля: Модуль класса открытия диалога открытия/ сохранения файла на Win32 API; Модуль класса быстрого перекодирования цветного изображения в оттенки. . .
SDL3 для Desktop (MinGW): Рисуем цветные прямоугольники с помощью рисовальщика SDL3 на Си и C++
8Observer8 17.03.2026
Содержание блога Финальные проекты на Си и на C++: finish-rectangles-sdl3-c. zip finish-rectangles-sdl3-cpp. zip
Символические и жёсткие ссылки в Linux.
algri14 15.03.2026
Существует два типа ссылок — символические и жёсткие. Ссылка в Linux — это запись в каталоге, которая может указывать либо на inode «файла-ИСТОЧНИКА», тогда это будет «жёсткая ссылка» (hard link),. . .
[Owen Logic] Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора
ФедосеевПавел 14.03.2026
Поддержание уровня воды в резервуаре количеством включённых насосов: моделирование и выбор регулятора ВВЕДЕНИЕ Выполняя задание на управление насосной группой заполнения резервуара,. . .
делаю науч статью по влиянию грибов на сукцессию
anaschu 13.03.2026
прикрепляю статью
SDL3 для Desktop (MinGW): Создаём пустое окно с нуля для 2D-графики на SDL3, Си и C++
8Observer8 10.03.2026
Содержание блога Финальные проекты на Си и на C++: hello-sdl3-c. zip hello-sdl3-cpp. zip Результат:
Установка CMake и MinGW 13.1 для сборки С и C++ приложений из консоли и из Qt Creator в EXE
8Observer8 10.03.2026
Содержание блога MinGW - это коллекция инструментов для сборки приложений в EXE. CMake - это система сборки приложений. Здесь описаны базовые шаги для старта программирования с помощью CMake и. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru