Яндекс. Тренировки по алгоритмам и ChatGPT
На фоне новостей о том, что люди с помощью ChatGPT решают всевозможные тесты, решил проверить Яндекс. Тренировки по алгоритмам июнь 2021, занятие 1. Задача про адские кондиционеры.
В офисе, где работает программист Петр, установили кондиционер нового типа. Этот кондиционер отличается особой простотой в управлении. У кондиционера есть всего лишь два управляемых параметра: желаемая температура и режим работы.
Кондиционер может работать в следующих четырех режимах:
«freeze» — охлаждение. В этом режиме кондиционер может только уменьшать температуру. Если температура в комнате и так не больше желаемой, то он выключается.
«heat» — нагрев. В этом режиме кондиционер может только увеличивать температуру. Если температура в комнате и так не меньше желаемой, то он выключается.
«auto» — автоматический режим. В этом режиме кондиционер может как увеличивать, так и уменьшать температуру в комнате до желаемой.
«fan» — вентиляция. В этом режиме кондиционер осуществляет только вентиляцию воздуха и не изменяет температуру в комнате.
Кондиционер достаточно мощный, поэтому при настройке на правильный режим работы он за час доводит температуру в комнате до желаемой.
Требуется написать программу, которая по заданной температуре в комнате troom, установленным на кондиционере желаемой температуре tcond и режиму работы определяет температуру, которая установится в комнате через час.
Формат ввода
Первая строка входного файла содержит два целых числа troom, и tcond, разделенных ровно одним пробелом (–50 ≤ troom ≤ 50, –50 ≤ tcond ≤ 50).
Вторая строка содержит одно слово, записанное строчными буквами латинского алфавита — режим работы кондиционера.
Формат вывода
Выходной файл должен содержать одно целое число — температуру, которая установится в комнате через час.
Тупо скопировал тест задания в DeepL и закинул в ChatGPT, попросив написать на Питоне. Решение ChatGPT:
def main(): troom, tcond = map(int, input().split()) mode = input().strip() if mode == "freeze": if troom > tcond: troom -= 1 elif mode == "heat": if troom < tcond: troom += 1 elif mode == "auto": if troom < tcond: troom += 1 elif troom > tcond: troom -= 1 print(troom) if __name__ == '__main__': main()
В сущности, ChatGPT все сделал правильно, единственное, что он не понял про мощность кондиционера, поэтому у него температура увеличивается/уменьшается на градус. Поправим немного код:
def main(): troom, tcond = map(int, input().split()) mode = input().strip() if mode == "freeze": if troom > tcond: troom = tcond elif mode == "heat": if troom < tcond: troom = tcond elif mode == "auto": troom = tcond print(troom) if __name__ == '__main__': main()
Будет время, попробую остальные задания, но уже по первому очень неплохо. По крайней мере структуру и обвязку можно за минуты написать.
Если очень хочется попробовать или уже серьезно работать с ChatGPT и DALL-E, но не получается прорвать через заградительные меры (напомню, что OpenAI не дает доступа россиянам), обращайтесь, помогу.