@ManWithBear ну вы не забывайте, что ваш код был с ошибкой, а найти ошибку - самая трудная часть. Можно уйти с экзамена уверенным, что все решил правильно, а на самом деле сделал какой-нибудь ляп, так что у каждого свое "простое и правильное решение" зависит от образа мысли и опыта решения задач.
@Tracker1 конечно не так, я же написал, что мясо начинается с момента прочтения 7 элементов, т. е. нужно сначала прочитать 7 элементов, сделать инициализацию и только потом делать пошаговое обновление. Кроме того ниже приведен более простой алгоритм решения.
@ManWithBear да не надо отсеивать, можно доказать, что среди 13 минимальных элементов будут те два, что образуют нужную пару. Действительно, пусть хотя бы один из элементов "минимальной" пары (x, y) не среди этих 13, пусть это x, тогда среди этих 13 элементов найдем тот, что может быть в паре с y (такой очевидно есть) и заменим x на него - получаем пару с меньшим произведением.
Вы ищете 7 наименьших элементов в массиве и потом из них выбираете пару удовлетворяющую условию с минимальным произведением? Если я правильно понял, то на последовательности чисел [4, 3, 3, 3, 3, 3, 1, 3] ответ вашего алгоритма будет 9, в то время как минимум 4. Единица не может участвовать в паре с тройкой в силу малой разницы, зато может с четверкой, но ее нет среди минимальных элементов, наверно стоит брать не 7, а как минимум 13 элементов.
@eignatik догадываюсь почему оно не сохранилось, но поправить его руками дело нескольких секунд. По-поводу, вашего решения, если дело действительно в этом, то, по-моему, это повод сделать багрепорт, в стандарте четко и ясно говорится о том, что fwrite при удачном завершении должен передвинуть курсор файла.
@jcmvbkbc я имел ввиду, что стандарт не позволяет определять эти операторы для перечислений, а значит нет смысла позволять делать их свободными функциями, я ни в коем случае не имел ввиду, что никому не может прийти в голову их так использовать.
В стандарте для некоторых операторов явно сказано, что они должны быть членами класса, вот из драфта 11 стандарта пример для оператора присваивания:
13.5.3 Assignment
[over.ass]
An assignment operator shall be implemented by a non-static member function with exactly one parameter. Because a copy assignment operator operator= is implicitly declared for a class if not declared by the user (12.8), a base class assignment operator is always hidden by the copy assignment operator of the
derived class.
@Fesor а вы с Java не путаете? Не понимаю, какое отношение инлайнинг имеет к делу? Как минимум enum от классов отличается перегрузкой операторов, указанных ТС.
Да нет комментарий не помешал бы, Geany - текстовый редактор, IDLE - среда разработки, чего вы хотите? Запускать python скрипт из Geany или IDLE (хотя не понимаю в чем могут быть проблемы с запуском скрипта из IDLE)
@Fesor я как раз и написал, что через raw сокеты можно работать в обход транспортного уровня, что не так? Про порты на raw сокетах я ничего не писал. Кроме того, TCP/UDP - не протоколы прикладного уровня, а протоколы транспортного уровня.
@LPzhelud вообще-то можно на некоторых системах, в Linux есть raw socket-ы - как раз в обход транспортного уровня. Но остается непонятным чем автору не угодили порты.