1859:The Perfect Symmetry

keyword

幾何 C++

概要

2526:Center of symmetryと殆ど同じ問題。
前に書いたのを貼り付けてちょこっといじってみたらサンプルが通らない。あれっ、これ間違ってるじゃないか。何であれでACされてたんだろう、と疑問に思いつつ修正して無事AC。実はこのコードにもまだ間違いが残っているという…。座標が…

int main(){
    int rept, n, i, d=500000000ll;
    ll x, y, cx, cy;
    ll ps[20002];

    while(scanf("%d",&n)){
        if(!n) break;
        cx = cy = 0;
        REP(i,n){
            scanf("%lld%lld",&x,&y);
            cx += 2*x;
            cy += 2*y;
            ps[i] = 2*x*d + 2*y;
        }
        if(cx%n && cy%n){
            printf("This is a dangerous situation!\n");
            continue;
        }
        cx /= n;
        cy /= n;

        REP(i,n){
            ps[i] -= cx*d + cy;
        }

        sort(ps,ps+n);
        REP(i,n)if(!binary_search(ps,ps+n,-ps[i]))break;
        if(i==n)printf("V.I.P. should stay at (%.1f,%.1f).\n",0.5*cx, 0.5*cy);
        else printf("This is a dangerous situation!\n");
    }

    return 0;
}