General
 
 
# Author Problem Lang Verdict Time Memory Sent Judged  
107740776 Practice:
tarun_decipher
1336B - 58 C++17 (GCC 7-32) Accepted 202 ms 5480 KB 2021-02-18 07:24:07 2021-02-18 07:24:07
→ Source
#include <bits/stdc++.h>
#define ll long long int
using namespace std;

ll ans = (ll)1e10;
ll sq(ll x)
{
    return abs(x) * abs(x);
}

void solve(vector<ll> a, vector<ll> b, vector<ll> c)
{

    for (auto i : a)
    {
        ll x = -1;
        int l = 0;
        int r = b.size() - 1;
        while (l <= r)
        {
            int m = l + (r - l) / 2;
            if (b[m] > i)
            {
                r = m - 1;
            }
            else if (b[m] <= i)
            {
                l = m + 1;
                x = b[m];
            }
        }
        ll y = -1;
        l = 0;
        r = c.size() - 1;
        while (l <= r)
        {
            int m = l + (r - l) / 2;
            if (c[m] < i)
            {
                l = m + 1;
            }
            else if (c[m] >= i)
            {
                r = m - 1;
                y = c[m];
            }
        }
        if (x == -1)
        {
            x = b[0];
        }
        if (y == -1)
        {
            y = c[c.size() - 1];
        }
        // if (x == b.end() || y == c.begin())
        // {
        //     continue;
        // }
        // y--;
        ans = min(ans, sq(i - x) + sq(x - y) + sq(y - i));
    }
}

int main()
{
    ios_base::sync_with_stdio(false);
    cin.tie(nullptr);

    ll t;
    cin >> t;
    while (t--)
    {
        ll r, b, g;
        cin >> r >> b >> g;
        vector<ll> red;
        vector<ll> blue;
        vector<ll> green;
        for (ll i = 0; i < r; i++)
        {
            ll temp;
            cin >> temp;
            red.push_back(temp);
        }
        for (ll i = 0; i < b; i++)
        {
            ll temp;
            cin >> temp;
            blue.push_back(temp);
        }
        for (ll i = 0; i < g; i++)
        {
            ll temp;
            cin >> temp;
            green.push_back(temp);
        }
        ans = LLONG_MAX;
        sort(red.begin(), red.end());
        sort(blue.begin(), blue.end());
        sort(green.begin(), green.end());

        solve(red, blue, green);
        solve(blue, red, green);
        solve(blue, green, red);
        solve(red, green, blue);
        solve(green, red, blue);
        solve(green, blue, red);

        cout << ans << endl;
    }
}
?
Time: ? ms, memory: ? KB
Verdict: ?
Input
?
Participant's output
?
Jury's answer
?
Checker comment
?
Diagnostics
?
Click to see test details