C++. помогите с решением задачи

компьютеры программирование C++

Условие задачи:
Выбрать три различные точки из заданного множества точек на плоскости так, чтобы была минимальной разность между количествами точек, лежащих внутри и вне треугольника с вершинами в выбранных точках.

В принципе, понимаю ход решения. Но реализовать в коде, ввиду ужасного знания языка, не могу. Прошу помощи!

/*------------------------------------main.cpp----------------------------------------------------*/
#include "stdafx.h"
#include <iostream>
#include <stdio.h>
#include <point.h>
#include <math.h>

using namespace std;

/*----------------------------задаем множество точек на плоскости---------------*/
main ()

setlocale(LC_ALL,"russian_russia");//поддержка русского языка

struct Point
{
double x;
double y;
};
Point P, Arr[10];

/*-----------------проверка принадлежности точки треугольнику-----------------*/
// исследуемая точка - P. а,b, с - вершины треугольника.

bool pointInTriangle (Point p, Point a, Point b, Point c)
{
return ((p.classify (a, b) != LEFT) &&
(p.classify(b, c) != LEFT) &&
(p.classify(c, a) != LEFT));
}


return 0;
}
Ответы:
форум программистов в помощь
гугл: форум програмистов, выбираете который понравится и вперед
Решение "в лоб" очевидно: Перебираете все тройки точек, коих С(n,3), и для каждой тройки выясняете сколько точек внутри.
int n = 10;
int res[3];
for( int i = 0; i < n-2; i++)
 for ( int j = i+1; j < n -1; j++)
   for ( int k = j+1; k < n; k++)   {
       for ( int m = 0; m < n; m++)  {
          if ( m == i || m == j || m == k)
             continue;
          if ( pointtInTriangle( Arr[m], Arr[i], Arr[j], Arr[k]) )
             inNum++;
       }
       unsigned tmp = abs( n - 3 - 2*inNum);
       if (  tmp < min)
       {
          min = tmp;
          // запоминаем как возможное решение
          res[0] = i; res[1] = j; res[2] = k;
       }
// печатаем res


15 лет назад

RPI.su - самая большая русскоязычная база вопросов и ответов. Наш проект был реализован как продолжение популярного сервиса otvety.google.ru, который был закрыт и удален 30 апреля 2015 года. Мы решили воскресить полезный сервис Ответы Гугл, чтобы любой человек смог публично узнать ответ на свой вопрос у интернет сообщества.

Все вопросы, добавленные на сайт ответов Google, мы скопировали и сохранили здесь. Имена старых пользователей также отображены в том виде, в котором они существовали ранее. Только нужно заново пройти регистрацию, чтобы иметь возможность задавать вопросы, или отвечать другим.

Чтобы связаться с нами по любому вопросу О САЙТЕ (реклама, сотрудничество, отзыв о сервисе), пишите на почту [email protected]. Только все общие вопросы размещайте на сайте, на них ответ по почте не предоставляется.