#include #include typedef struct { int x, y; } point; point pole[20010]; int body; int posx, posy; int sx, sy; int index; double symx, symy; int compare(const void *arg1, const void *arg2) { point *p1 = (point*)(arg1); point *p2 = (point*)(arg2); if (p1->x > p2->x) return 1; if (p1->x < p2->x) return -1; if (p1->x == p2->x) { if(p1->y < p2->y) return -1; if(p1->y == p2->y) return 0; if(p1->y > p2->y) return 1; } return 0; } int main() { scanf("%d", &body); while(body != 0) { sx = sy = 0; for(int index = 0; index < body; index++) { scanf("%d %d", &posx, &posy); pole[index].x = posx; pole[index].y = posy; sx += posx; sy += posy; } symx = sx / (double(body)); symy = sy / (double(body)); qsort( (void*)pole, body, sizeof(point), compare); // for(int k = 0; k < body; k++) // printf("%d %d\n", pole[k].x, pole[k].y); bool ok = true; for(int i = 0; i < body / 2+1; i++) { if (symx - pole[i].x == pole[body-i-1].x - symx) { if (symy - pole[i].y == pole[body-i-1].y - symy) ok = true; } else { ok = false; break; } } if (ok) printf("V.I.P. should stay at (%.1f,%.1f).\n", symx, symy); else printf("This is a dangerous situation!\n"); scanf("%d", &body); } return 0; }