- Santa Monica есть даже в примере. Так что да, конечно.
- Имеется ввиду лексикографический порядок
@RS Спасибо, тогда ещё вопрос, пофиксили ли в тестах то, что встречались товары с одинаковым именем?) И в примере Санта-Моника через тире написана, поэтому я спросил.
Не пофиксили.
Все большие тесты содержат повторяющиеся товары.
Вряд ли тесты будут переделываться Надо в условии изменить эту строчку.
Адаптировать решение под повторяющиеся товары можно заменой = на += в нужном месте
@Nekrolm Нет, в моей реализации мне ещё кучу в считывании придётся переделывать, поэтому я и решил уточнить, ну а с += это уже в самом процессе после того как мы считали и отсортировали
Роман Борисович, во сколько можно будет подойти завтра во вторник 20 октября, чтобы показать задание?
Роман Борисович, чекер работает неправильно: выдаёт неинформативные сообщения, например, о невозможности парсировать XML(RUN 333) или chek failed(RUN 427). Я компилировал этот код уже в 4 разных компиляторах (майкрософт, gcc, clang и mingw), используя различные флаги компиляции (c++11,14, o0,o3). Он во всех случаях работал одинаково, выдавая верный результат.
Павел, это происходит при любой отправке? Приходите ко мне, посмотрим на сервере.
Сегодня обсуждали вопрос об использовании sort
и предиката >=
. Долго удивлялись и все такое. Демонстрирую, где “собака зарыта”: тут про sort, а тут про концепцию Compare, используемую сортировкой. Т.к. предикат >=
не вписывается в эту концепцию, то его использовать нельзя. Скорее всего - это undefined behavior.
А в каком именно месте не вписывается? Просто звучит немного фантастически.
UPD я вот на такой программе попробовал clang 3.6 — вроде всё нормально.
#include <algorithm>
#include <iostream>
#include <vector>
struct P {int a; double d;};
using namespace std;
int main()
{
vector<P> v {{1, 2.5}, {2, 2.7}, {2, 3.1}, {1, 2.7}};
sort(begin(v), end(v), [](P const & p1, P const & p2){
return p1.d >= p2.d;
});
for (auto p : v) {
cout << "p.a: " << p.a << " p.b " << p.d << endl;
}
}
Цитирую Compare:
For all a, comp(a,a)==false
Для >=
это не так. Было предположение, что результат такой сортировки undefined behavior. Но вообще надо стандарт смотреть.
У нас тоже не 100% тестов упало. Но кое-что упало.
так как в компараторе писать? просто < ?
Да, действительно, спасибо. Слово strict в “strict weak ordering” как раз означает иррефлексивность. В стандарте сказано (25.3/3) так:
For the algorithms to work correctly,
comp
has to induce a strict weak ordering on the values.
Про UB не сказано, хотя обычно пишется явно, если UB. Тем не менее, на cplusplus.com утверждают, что UB.
Ну, так это же вольная трактовка. Я же выше написал, что за UB надо в стандарт лезть.
Вопрос: а по-русски это свойство не антирефлексивность называется? Антисеммитричность, антирефлексивность …
А для предиката <
проверить свойства концепции Compare самостоятельно слабо?
Это же задача для 1 курса по теории множеств.
Внимание!
С задачей №1 по STL поступим следующим образом. Доп баллы за нее получат те, кто
- Отправил решения до 24.10 включительно и получившие “ОК”. Я составлю список студентов и вывешу его сюда.
- Обсудил и исправил качественную сторону решения со мной до 31.10 включительно.
Добавлены два теста, которые проверяют работу со строками и списками объектов. Rejudge запущен.
Дима, 41 тест так же по просьбам трудящихся выложи, пожалуйста
@RS Роман Борисович, возник такой вопрос, судя по тестам, дата может быть в формате д.мм.гггг чч:мм, например 1.12.2013 22:22, вместо 01.12.2013 22:22, а это противоречит условию задачи
Дата и время документа Формат дд.мм.гггг чч:мм
Хотелось бы узнать, это так задумано(не баг, а фича) или тот, кто писал тесты, допустл ошибку? У меня из-за этого программа некорректно работает
Роман Борисович, чекер почему-то считает эти файлы бинарыми и размер неправильно определяет, хотя у меня они нормально создаются и открываются. (RUN 648). http://plasmon.rghost.ru/6D6GfsSCT/image.png