既然是要像点,为什么可以有奇数个点?
查看原帖
既然是要像点,为什么可以有奇数个点?
319478
zhibuba楼主2020/7/31 15:11

原本把奇数个点排除就WA了四个,注释掉就AC

#include <iostream>
#include <algorithm>
#include <cstdio>

using namespace std;

struct Point
{
    int x, y;
};

Point S[20000];

int main()
{
    int N;
    cin >> N;
*/   if (N % 2 == 1)
        goto Fail;
*/ 	{
        long double Cx = 0, Cy = 0;
        for (int i = 0; i < N; i++)
            cin >> S[i].x >> S[i].y, Cx += S[i].x, Cy += S[i].y;
        Cx /= N, Cy /= N;
        sort(S, S + N, [](const Point & a, const Point & b){return a.x < b.x || (a.x == b.x && a.y < b.y);});
        for (int i = 0; i < N / 2; i++)
        {
            if (abs(Cx * 2 - S[i].x - S[N - 1 - i].x) > 1e-5 || abs(Cy * 2 - S[i].y - S[N - 1 - i].y) > 1e-5)
                goto Fail;
        }
        printf("V.I.P. should stay at (%.1Lf,%.1Lf).", Cx, Cy);
        return 0;
    }
    Fail:
    cout << "This is a dangerous situation!";
    return 0;
}
2020/7/31 15:11
加载中...