안녕하세요. 오늘은 원을 그릴 거예요.

문제

https://www.acmicpc.net/problem/17093

아이디어

그냥 P와 Q에서 아무거나 두개 뽑아서 거리의 제곱의 최댓값을 구해주면 됩니다.

소스코드

#include <iostream>
#include <algorithm>
#define ll long long
using namespace std;

int main(void)
{
    ios_base::sync_with_stdio(false); cin.tie(NULL);
    ll x[1010] = { 0 }, y[1010] = { 0 }, x2[1010] = { 0 }, y2[1010] = { 0 };
    ll N, M, i, j, mx = 0;

    cin >> N >> M;
    for (i = 1; i <= N; i++)
        cin >> x[i] >> y[i];
    for (i = 1; i <= M; i++)
        cin >> x2[i] >> y2[i];

    for (i = 1; i <= N; i++)
        for (j = 1; j <= M; j++)
            mx = max(mx, (x[i] - x2[j]) * (x[i] - x2[j]) + (y[i] - y2[j]) * (y[i] - y2[j]));
    cout << mx;
}


감사합니다.

0개의 댓글