#include int minY, minX, maxY, maxX; struct point { int X, Y; }; point pole[20000], NewPoint, S; int PocBodu, pom, pom1, pom2; int ok, ok2; int main() { scanf("%d",&pom1); while (pom1 != 0) { minY = minX = 10000000; maxY = maxX = -10000000; ok = 1; for (pom = 0; pom < pom1; pom++) { scanf("%d %d", &pole[pom].X, &pole[pom].Y); pole[pom].X *= 10; pole[pom].Y *= 10; if (pole[pom].X < minX) minX = pole[pom].X; if (pole[pom].X > maxX) maxX = pole[pom].X; if (pole[pom].Y < minY) minY = pole[pom].Y; if (pole[pom].Y > maxY) maxY = pole[pom].Y; } // printf("minX: %d , minY: %d, maxX: %d, maxY: %d\n",minX,minY,maxX,maxY); S.X = (maxX - minX) / 2 + minX; S.Y = (maxY - minY) / 2 + minY; PocBodu = pom1; pom = 0; while (PocBodu > pom) { if ((S.X != pole[pom].X) || (S.Y != pole[pom].Y)) { NewPoint.X = pole[pom].X + (S.X - pole[pom].X)*2; NewPoint.Y = pole[pom].Y + (S.Y - pole[pom].Y)*2; ok2 = 0; pom1 = pom + 1; while (pom1 < PocBodu) { if ((pole[pom1].X == NewPoint.X) && (pole[pom1].Y == NewPoint.Y)) { pole[pom1] = pole[--PocBodu]; pom1 = PocBodu; ok2 = 1; } pom1++; } if (ok2 == 0) { ok = 0; pom = PocBodu; } } pom++; } if (ok == 0) printf("This is a dangerous situation!\n"); else printf("V.I.P. should stay at (%d.%d,%d.%d).\n", S.X/10, S.X - ((S.X/10)*10), S.Y/10, S.Y - ((S.Y/10)*10)); scanf("%d",&pom1); } return 0; }