Несложная задача на структуры данных, но с некоторыми подводными камнями, которые могут помочь избегать ошибок в будущем. Читаем условие: Уже из приведённого примера следует, что надо складывать два самых маленьких числа. Это же следует и из логики: если большое число участвует в нескольких операциях сложения, то в каждой из них за это число надо будет заплатить. То есть надо стараться чаще использовать маленькие числа (ведь количество операций сложения всегда будет равно N - 1). Отсюда получаем, что нам необходимо поддерживать упорядоченный набор чисел, из которого легко доставать минимальное и в который легко класть сумму. При ограничении N до 100000 поддерживать сортированный массив очень накладно по времени. Однако существует целое множество структур данных, с помощью которым можно это реализовать: куча и всевозможные деревья поиска. Одним из самых простых вариантов является использование имеющейся в стандартной библиотеке шаблонов структуры set (а точнее multiset, так как числа в