Форум программистов, компьютерный форум, киберфорум
Наши страницы
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
Якуб
0 / 0 / 0
Регистрация: 17.01.2013
Сообщений: 3
#1

Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек различались наименьшим образом

18.01.2013, 23:41. Просмотров 1292. Ответов 1
Метки нет (Все метки)

Из заданного множества точек на плоскости выбрать две различные точки так, чтобы количества точек, лежащих по разные стороны прямой, проходящей через эти точка, различались наименьшим образом.
(без векторного произведения)
0
Лучшие ответы (1)
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
Similar
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
18.01.2013, 23:41
Ответы с готовыми решениями:

Выбрать три различные точки из заданного множества точек на плоскости по условию
вот у меня задача нарисовалась нужно выбрать три различные точки из заданного...

Из заданного на плоскости множества точек выбрать 3 различные
Из заданного на плоскости множества точек выбрать 3 различные так,чтобы...

Среди заданного множества точек найти две точки с максимальным расстоянием между ними
Среди заданного множества точек найти две точки с максимальным расстоянием...

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

Выбрать 3 разные точки A,B,C так, чтобы внутри треугольника ABC содержалось макс. количество точек
Из заданного множества точек на плоскости выбрать 3 разные точки A,B,C так,...

1
NurlashKO
88 / 88 / 80
Регистрация: 07.10.2012
Сообщений: 145
19.01.2013, 23:10 #2
Лучший ответ Сообщение было отмечено Якуб как решение

Решение

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
type 
    point = record
        x, y :longint;
    end;
var
    ans, n, i, j, s1, s2, a, b, c, k :longint;
    p :array[1 .. 1000] of point;
    l, r :point;
procedure calc(p1, p2 :point);
begin
    a := p2.y - p1.y; 
    b := p1.x - p2.x;
    c := p1.x * (p1.y - p2.y) + p1.y * (p2.x - p1.x);
end;
 
begin
 
    read(n);
    for i := 1 to n do 
        read(p[i].x, p[i].y);
    ans := 100000;
    for i := 1 to n do
        for j := i + 1 to n do begin
            calc(p[i], p[j]);
            s1 := 0;
            s2 := 0;
            for k := 1 to n do begin
                if (a * p[k].x + b * p[k].y + c > 0) then inc(s1);
                if (a * p[k].x + b * p[k].y + c < 0) then inc(s2);
            end;
            if (abs(s1 - s2) < ans) then begin
                ans := abs(s1 - s2);
                l := p[i];
                r := p[j];
            end;
        end;
    writeln(l.x, ' ', l.y);
    writeln(r.x, ' ', r.y);
    
end.
0
MoreAnswers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
19.01.2013, 23:10

Выбрать три различные точки из заданного множества
Выбрать три различные точки из заданного множества точек на плоскости так,...

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

Среди множества точек на плоскости найдите пару точек с минимальным расстоянием между ними
Среди множества точек на плоскости найдите пару точек с минимальным расстоянием...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2018, vBulletin Solutions, Inc.
Рейтинг@Mail.ru