Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #include <iostream>
- #include <cmath>
- using namespace std;
- int main()
- {
- int N, D; // 1- количество хачопаков, 2 - размер прохода
- cin>>N>>D;
- int p,S; //полупериметр и площадь
- int x = 0;
- int H; //высота
- int mas[3*N]; //основной массив для хранения сторон треугольников
- int ind = 0; //индекс второго массива, где хранятся высоты что удовлетворяют условию
- int res = 0; // индекс того элемента где высота наибольшая!!!
- int visota = 0; // высота с которой сравниваются остальные
- int arr[N]; // массив для хранения высот
- for (int i = 0; i < N ; i++)
- arr[i]=0; // весь массив в нулях; массив для хранения высот
- for (int q = 0; q < 3*N; q++)
- cin>>mas[q]; //вводим значения с клавиатуры
- for (int i = 0; i < 3*N ; )
- {
- p = (mas[i] + mas[i+1] + mas[i+2])/2; //полупериметр
- S = sqrt(p * (p-mas[i]) * (p-mas[i+1]) * (p-mas[i+2]) ); //площадь
- if ( mas[i] > mas[i+1] ) { x = mas[i]; }
- if ( mas[i+2] > x ) { x = mas[i+2]; }
- H = (S*2) / x; // нашли высоту
- arr[ind] = H; // записали высоты в массив
- ind++; // увеличили индекс этого массива на 1
- i+=3; // увелили "і" на 3 т.к. нам нужно взять след. три стороны из массива значений
- }
- for (int i = 0; i < N ; i++) {
- if (arr[i] <= D && arr[i] >= visota) {visota = mas[i]; res = i+1; }
- // 2 условия для выбора наибольшего хачепака
- else {continue;}
- }
- cout<<res<<endl;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement