QWERTYUIOPas, Ну, сочувствую. Но, поскольку мне их не видно, помочь ничем не могу. Скорее всего надо пути к инклудам прописать. Конечно, быстрее будет включить вижуал студию, создать консольный проект, добавить ваши cpp/h файлы и тогда все само должно быть найдено.
Выдает ошибку? Какую? Что значит "сократить"? Сделать код короче, не меняя его смысл?
Что значат цвета в таблице? Опишите словами, что код должен делать.
QWERTYUIOPas, Если он у вас стоит, то просто вместо g++.exe запускайте cl.exe из папки с visual studio. Возможно придется погуглить ключи компилятора, если не заработает..
QWERTYUIOPas, 500 строк - это там примеры кучи функций, плюс там чуть ли не треть это код собственно виндового приложения, чтобы показать окошко. То, что вам надо - это строк 100. Функция, на которую я привел сссылку и немного кода там, где она вызвается.
Но, да. Работа с winapi всегда очень многословна. Куча If(SUCCEEDED(hr)) для проверки, что все сработало, куча QueryInterface, что бы преобразовывать типы.
Alexandroppolus, Listrigon,
Нет, этот код, к сожалению, не решает приведенную задачу. Этот код ищет максимальный прямоугольник в гистограмме - т.е многоугольник выпуклый, и левый край всех строк выравнен. Поэтому она принимает не матрицу 0 и 1, а массив "высот" по всем строчкам.
Задачу с литкода за линию не решить, иначе там бы ограничения были бы побольше 200. Она решается за O(w^2*h), Надо перебрать левый и правый края прямоугольника, а дальше получить массив 0 и 1 - можно ли каждую строчку включить в прямоугольник на этой широте. А дальше уже одномерная задача поиска максимального отрезка решается за O(h).
QWERTYUIOPas, Вы не можете установить среду разработки, потому что у вас нет админских прав?
Ну, сочувствую. Вам еще visual studio придется поставить, скорее всего, потому что mingw может не работать с windows sdk. Консольные приложения вы еще запилить сможете, а вот что-то GUI'евое - уже не факт.
Может вы где-то и найдете эти хедеры, но не факт, что оно заработает.
2) при копировании надо выделять память, только если текущей не хватает. При этом надо не забыть текущую память удалить.