fjaerj12, Но в тестах могут быть ошибки. Это единственное объяснение которое я нахожу access violation решению на C#, когда как точно такое же решение на C++ проходит.
Логика решений одинакова. switch, foreach, арифметика и символьные сравнения работают одинаково в обоих языках. Вывод вроде тоже не может быть проблемой (вроде и там и там вывод в консоль). Остается только ввод, который принципиально по разному реализован в двух вариантах.
Василий Банников, const - это просто обещание программиста не трогать вот эту вот переменную вот в этом вот скоупе. "обычная константа" - не настолько константна в C/С++, как вам хотелось бы думать.
Ogurchik-007, Нет, тело функции нельзя описывать в main, где вы ее вызываете. Надо это делать все функции Main. Или сделайте, как у вас с функциями inputArray и printArray, или реализуйте функцию в самом конце файла.
Вы гуглили документацию по libjpeg? У меня вторым результатом выдает прямо код использования. Аккуратно прочитайте комментарии и вам должно стать понятно, в каком формате оно выдает данные и как их запихать в вектор. Кстати, в каком формате вы хотите данные в int-овом векторе? Там выдается (в общем случаее) по 3 байта на 3 канала. Странно хранить это в int.
fjaerj12, Еще одна ошибка: вы там когда пересчитываете minValue и parent через текущую вершину вы можете их обновить у уже ранее добавленных вершин. Это делать нельзя. Так может случится, если, например, рядом с 0 все ребра большие, а дальше все ребра меленькие.
У этого кода другая проблема с точки зрения производительности: input.find(separator, i); работает за квадрат в худшем случае. Если separator длинный, да еще там много частичных совпадений в input, то код будет тормозить.
Стандарт не накладывает никаких ограничений на временную сложность метода find и, насколько мне известно, все распространенные реализации стандартной библиотеки не используют каких-нибудь хитрых алгоритмов вроде Боера-Мура или Кнута-Морриса-Пратта.
Ответ на ваш вопрос вот так дать нельзя. Какую функцию расстояния использовать и как ее нормализовывать целиком и полностью зависит от того, что это за числа, откуда они взялись, какой у них физический смысл и зачем вы их сравниваете. Распишите больше деталей, приведите больше примеров.
alekseiami, Ну данное a на самом деле неважно. Ибо треугольник с углом и соотношением двух сторон можно как угодно масштабировать, что бы a нашлось заданное.
Или можно из квадратного уравнения решать C относительно A. Потом B = kC. А потом остается проверить, что неравенства выполняется. По идее A тоже должно сократиться.
AnnyB_009, Да. Первый вариант выберется с вероятностью 1/8. Второй - с вероятность 7/8*3/7 = 3/8, как надо. Третий с вероятностью 7/8*6/7*3/6 = 3/8. Именно поэтому последующие разы вы генерируете не от 0 до 7, а от 0 до сколько там осталось вариантов.
AnnyB_009, О госпади. Ну тогда можно так - сначала если случайное число от 0 до 7 равно нулю, то первый вариант. Потом, если случайное число от 0 до 6 равно 0,1,2 - то второй варинат, потом случайное число от 0 до 4 должно попасть в 0,1 или 2, и в конце всегда остается четвертый вариант.
Логика решений одинакова. switch, foreach, арифметика и символьные сравнения работают одинаково в обоих языках. Вывод вроде тоже не может быть проблемой (вроде и там и там вывод в консоль). Остается только ввод, который принципиально по разному реализован в двух вариантах.