0 / 0 / 0
Регистрация: 24.11.2018
Сообщений: 12
1

Найти наименьший периметр треугольника

29.11.2018, 16:29. Показов 816. Ответов 0

Your a given coordinates of N points on the XY-plane.All points are different.Find the triangle with minimum possible perimeter.

Input:
First line contains N - total amoun of points (3 ≤ N ≤ 50). Then N lines are inputed.
Each line that describes coordinate contains two numbers.
Output:
Your task is to output three numbers that forms triangle with minimum perimeter.
Note that points are numbered from 1 to N.
If it's multiple solutions output any of them.
Input Output
5 1 2 4
0 0
1.3 0
-2 0.1
1 0
10 10

Добавлено через 1 минуту
В ЧЕМ ОШИбКА ПОМОГИТЕ ПЛиз
C++
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
41
42
43
44
45
46
47
48
49
#include<iostream>
 
#include <vector>
#include <algorithm>
#include <cmath>
#include <cstdio>
using namespace std;
#define pii pair<float, float>
#define mp make_pair
#define pb push_back
#define F first
#define S second
 
 
float dist(pii a, pii b) {
  return sqrt(pow(a.F - b.F, 2) + pow(a.S - b.S, 2));
}
int main() {
  int N;
  cin >> N;
  vector<pii> coords;
  for (int i = 0; i < N; i++) {
    float x, y;
    cin >> x >> y;
    coords.push_back(make_pair(x, y));
  }
  float minAB = dist(coords[0], coords[1]), minBC = dist(coords[0], coords[2]), minAC = dist(coords[1], coords[2]);
  int x = 0, y = 0, z = 0;
  float P = minAB + minBC + minAC;
  for (int i = 0; i < coords.size(); i++) {
    for (int j = 0; j < coords.size(); j++) {
      for (int k = 0; k < coords.size(); k++) {
        if (i != j && j != k && i != k) {
          minAB = dist(coords[i], coords[j]);
          minBC = dist(coords[j], coords[k]);
          minAC = dist(coords[i], coords[ k]);
          if (minAB + minBC + minAC < P) {
            P = minAB + minBC + minAC;
            x = i;
            y = j;
            z = k;
          }
        }
      }
    }
  }
  cout << x + 1 << " " << y + 1 << " " << z + 1;
  return 0;
}
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
29.11.2018, 16:29
Ответы с готовыми решениями:

Известна гипотенуза С и противолежащий угол B прямоугольного треугольника. Найти периметр треугольника
Помогите написать данную программу: Известна гипотенуза С и противолежащий угол B прямоугольного...

Найти площадь и периметр треугольника
Условие такое: Заданы три точки на плоскости: М с координатами (x1,y1), L с координатами...

Найти наибольший периметр треугольника
Дано множество A из N точек ( N&gt;2, точки заданы своими координатами x, y) . Найти аибольший...

Найти периметр и площадь треугольника
Заданы координаты трех вершин треугольника (x1,y1) (x2,y2) (x3,y3).

0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.11.2018, 16:29
Помогаю со студенческими работами здесь

Найти периметр и площадь треугольника
в C ++. 10. Треугольник задан координатами (x1, y1), (x2, y2), (x3, y3) своих вершин. Найти...

Найти периметр треугольника через функцию
Ребят, сижу на зачете, помогите пожалуйста! :) Найти периметр треугольника, заданного...

Даны катеты треугольника. Найти периметр
задача: даны катеты треугольника найти периметр. #include &lt;iostream&gt; using namespace std; int...

Найти периметр, площадь и высоту треугольника
1: Дано сторону равностороннего треугольника A. Найти его периметр P и площадь S и высоту H

Найти периметр и площадь заданного треугольника
Нам дали задание сделать 1) периметр треугольника с точками(x1,y1)(x2,y2)(x3,y3) 2)найти площадь...

Найти периметр треугольника, если он задан вершинами
вершины (x1,y1),(x2,y2),(x3,y3)


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

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

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2023, CyberForum.ru