Submission #1211536

#TimeUsernameProblemLanguageResultExecution timeMemory
1211536Trn115개미 (GA4_ant)C++20
100 / 100
618 ms1568 KiB
#include <bits/stdc++.h>

#define double long double
#define int long long
#define fi first
#define se second
#define all(v) v.begin(), v.end()

using namespace std;

constexpr double eps = 1e-9;

inline double sqr(double x)
{
    return x * x;
}

inline double cal(int y, int z, int x, double c)
{
    return sqrt(sqr(y) + sqr(c)) + sqrt(sqr(x - c) + sqr(z));
}

inline int solve(int y, int z, int x)
{
    double l = 0, r = x;
    while (r - l > eps)
    {
        double dis = (r - l) / 3;
        double mid1 = l + dis; double f1 = cal(y, z, x, mid1);
        double mid2 = r - dis; double f2 = cal(y, z, x, mid2);
        if (f1 > f2)
        {
            l = mid1;
        }
        else
        {
            r = mid2;
        }
    }
    return (int) round(sqr(cal(y, z, x, l)));
}

signed main()
{
    cin.tie(0)->sync_with_stdio(0);
    if (fopen("source.inp", "r"))
    {
        freopen("source.inp", "r", stdin);
        freopen("source.out", "w", stdout);
    }

    int t; cin >> t;
    while (t--)
    {
        int a, b, c; cin >> a >> b >> c;
        cout << min({solve(a, b, c), solve(a, c, b), solve(b, c, a)}) << "\n";
    }
}

Compilation message (stderr)

ant.cpp: In function 'int main()':
ant.cpp:48:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   48 |         freopen("source.inp", "r", stdin);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~
ant.cpp:49:16: warning: ignoring return value of 'FILE* freopen(const char*, const char*, FILE*)' declared with attribute 'warn_unused_result' [-Wunused-result]
   49 |         freopen("source.out", "w", stdout);
      |         ~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...