#include #include #define ER 0.00001 struct bod { int x, y, c; bool used; bod() {} bod(int _x, int _y) : x(_x), y(_y), c((x + 10000) * 20000 + y + 10000), used(false) {} }; bod body[21000]; int blen; int cmp(const void* _a, const void* _b) { bod* a = (bod*)_a; bod* b = (bod*)_b; return a->c - b->c; } int OneTask() { scanf("%d", &blen); if(blen == 0) return 0; int xs = 0; int ys = 0; for(int i = 0; i < blen; i++) { int x, y; scanf("%d %d", &x, &y); body[i] = bod(x, y); xs += x; ys += y; } double x0 = 2*xs / (double)blen; double y0 = 2*ys / (double)blen; //printf("S: %f %f\n", x0 / 2, y0 / 2); qsort(body, blen, sizeof(bod), cmp); bool ok = true; for (int i = 0; i < blen; i++) { int x, y; double dx, dy; dx = x0 - body[i].x; dy = y0 - body[i].y; x = (int)(dx); y = (int)(dy); if (fabs(x - dx) > ER || fabs(y - dy) > ER) { ok = false; break; } bod b(x, y); void* p = bsearch(&b, body, blen, sizeof(bod), cmp); if(p == NULL) { ok = false; break; } } if(ok) printf("V.I.P should stay at (%.1f,%.1f).\n", x0 / 2 + ER, y0 / 2 + ER); else printf("This is a dangerous situation!\n"); return 1; } int main() { while(OneTask()) ; return 0; }