Форум » Обработка числовых последовательностей » Не верные ответы у них в задаче 3825 » Ответить

Не верные ответы у них в задаче 3825

VectorASD: Решаю я такой задачку, а тут больше нужного получается, т.к. тестер на сумму (Chislotron) никогда не ошибается XD Прога: [pre2] #Начал разработку: 21:46 #Время получения ответа: 22:00 (ответы на сайте не верные) def Chislotron(Arr, Sum): def Recurs(Arr, Find): S = set(Arr) for Ch in sorted(S): if Ch < Find: A = Arr.copy() A.remove(Ch) Recurs(A, Find - Ch) elif Ch == Find: raise KeyError else: break if Sum == 0: return True try: Recurs(Arr, Sum) except KeyError: return True return False def Z3825(): def Brain(Name): with open(Name) as file: N = int(file.readline()) Data = [int(file.readline()) for i in range(N)] Sum = sum(Data) V = Sum % 50 print(sorted(Data)) while True: print("Тест:", V) if Chislotron(Data, V): break V += 50 #print(Sum - V) return Sum - V #Brain("27-61a.txt") print("Ответ Z3825:", Brain("27-61a.txt"), Brain("27-61b.txt")) print(sum([2, 4, 16, 24, 26, 31, 36, 41, 46, 58, 61, 62, 66, 70, 80, 88, 92, 97])) #Изъял 22 и 25 и тут рили 900 Z3825() [/pre2] В итоге выходит, что на деле не 850 5036250 должно быть, а 900 5036300 XD Вывод проги: [pre2] [2, 4, 16, 22, 24, 25, 26, 31, 36, 41, 46, 58, 61, 62, 66, 70, 80, 88, 92, 97] Тест: 47 [много-много сортированных чисел] Тест: 16 Тест: 66 Тест: 116 Ответ Z3825: 900 5036300 900 [/pre2] Ответ проги приходит мгновенно, т.к. чем меньше сумма на тесте, тем быстрее Chislotron найдёт или не найдёт комбинацию на сумму Пользуйтесь моим числотроном на здоровье ;'-} , т.к. почти половина задач 27 им решается :S P.S. 22 и 25 взял с неба, лижбы вышло 47 в сумме, но можно и 16 с 31 взять. Числотрон создан для тестирования суммы, а не нахождения массива чисел, что даст эту сумму (в целях скорости, т.к. в таких задачах нигде не нужны такие числа), так что воть;'-}

Ответов - 0



полная версия страницы