zhukov000

564

Mar 15th, 2020
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.30 KB | None | 0 0
  1. #define loop(i,from,to) for (int i = from; i < to; ++i)
  2. #include <bits/stdc++.h>
  3.  
  4. using std::cin;
  5. using std::cout;
  6. using std::endl;
  7. using std::vector;
  8. using std::string;
  9. using std::pair;
  10. using std::set;
  11.  
  12. const int INF = 1e9+7;
  13. const double eps = 1e-6;
  14.  
  15. long long S(int a, int b, int c) {
  16.   long long p = a + b + c;
  17.   return 1LL * p * (p - 2 * a) * (p - 2 * b) * (p - 2 * c);
  18. }
  19.  
  20. bool check(int a, int b, int c) {
  21.   return a + b > c && a + c > b && b + c > a;
  22. }
  23.  
  24. signed main() {
  25.   std::ios::sync_with_stdio(false);
  26.   cin.tie(0);
  27.   cout.tie();
  28.   int n, T; cin >> n;
  29.   vector<int> data;
  30.   loop(i, 0, n) {
  31.     cin >> T;
  32.     data.emplace_back(T);
  33.   }
  34.   if (n < 3) cout << -1;
  35.   else {
  36.     long long mx = -INF;
  37.     int x, y, z;
  38.     bool f = false;
  39.     loop(i, 0, n - 2)
  40.       loop(j, i + 1, n - 1)
  41.         loop(k, j + 1, n)
  42.           if (check(data[i], data[j], data[k]) && mx < S(data[i], data[j], data[k])) {
  43.             mx = S(data[i], data[j], data[k]);
  44.             x = i + 1;
  45.             y = j + 1;
  46.             z = k + 1;
  47.             f = true;
  48.           }
  49.     if (!f) cout << -1;
  50.     else {
  51.       cout << std::fixed << std::setprecision(6) << sqrt((long double) mx) / 4;
  52.       cout << endl << x << " " << y << " " << z;
  53.     }
  54.   }
  55.   //std::cout << "Hello World!\n";
  56.   return 0;
  57. }
Advertisement
Add Comment
Please, Sign In to add comment