zenz, Ну, так же, как у вас InputIterator'ы передаются - обозначте его, ну не знаю, Out. У него в коде функции можно будет делать присвоение и инкрементирование.
logan baby, Ну вам же сказали, делать во второй мапе ключами фамилии. Просто поменяйте местами параметры при запихивании во второй мап. И сделайте его std::multimap, если фамилии могут повторятся.
zenz, Нет, там точно что-то еще написано. Например, какой именно параметр он не может сматчить в шаблоне. Это сообщение компилятора должно вам однозначно намекнуть, что проблема в одном из ваших параметров в шаблонной функции. Конкретно в третьем. Посмотрите, какой тип имеет back_inserter и подумайте, каким образом оно может привестись к вашему параметру?
Откуда вы взяли про объединение? Или это хитрость из разряда "задавая вопрос в интернете, дайте на него неправильный ответ, тогда точно придут толпы разъяренных спорщиков и дадут правильный"?
Igor Borisov, Дело не в стиле. Дело в том, что там похоже меняли код случайным образом, пока на каком-то тесте не заработало. На других не работает, вот и спрашивают.
Alexandroppolus, можно и с О(sqrt(5000)) памяти. Сначала решетом найти для всех чисел до корня минимальный простой делитель. А потом искать gcd сливая списки простых. Если аккуратно подсчитать сколько там суммарно простых делителей среди всех чисел - будет линия.
Alexandroppolus, Я тоже сначала подумал про ответ за O(1). Даже какие-то формулы пытался выводить. Но там все не так просто, потому что надо, чтобы GCD(n,m) == 1, иначе тройки перебираются с повторами. Если и есть какая-то замкнутая формула, то там какой-нибудь ужас вроде дзетта-функции римана.
Даже не надо их генерировать. Достаточно перебрать n и m, найти k максимально возможное (поделив 5000 на c), прибавить к счетчику k. На максимум проверять надо 2km(m+n). У этого решения будет линейная сложность относительно ограничения на размер чисел.
asdsdsdafsdafdsaf, да, похоже на правду. Вот тут есть вообще код. Только его можно еще соптимизировать. Не надо копировать результат в начальный массив - лучше пусть функция принимает два вектора одинакового размера и по какому разряду надо сортировать. А дальше вызывайте ее перекладывая данные из одного вектора в другой и назад. Для этого удобно завести массив из двух векторов и класть из i%2 в (i+1)%2.