A. Пересечение смайликов

Codeforces
IDCF10144A
Time2000ms
Memory256MB
Difficulty
English · Original
Formal · Original
Смайлик с центром в точке (x0, y0) представляет из себя окружность радиуса 100 с центром в точке (x0, y0), из которой вырезаны две окружности радиуса 30 с центрами в точках (x0 - 40, y0 + 30) и (x0 + 40, y0 + 30) и нижняя половина окружности радиуса 60 с центром в точке (x0, y0 - 20) (смотри рисунок). В задаче требуется найти площадь объединения двух заданных смайликов. В единственной строке через пробел даны четыре целых числа  - 1000 ≤ x1,  y1,  x2,  y2 ≤ 1000, где (x1,  y1) – координаты центра первого смайлика, а (x2,  y2) – координаты центра второго смайлика. Выведите единственное число – ответ на задачу, c абсолютной погрешностью не более 10 - 4. ## Входные Данные В единственной строке через пробел даны четыре целых числа  - 1000 ≤ x1,  y1,  x2,  y2 ≤ 1000, где (x1,  y1) – координаты центра первого смайлика, а (x2,  y2) – координаты центра второго смайлика. ## Выходные Данные Выведите единственное число – ответ на задачу, c абсолютной погрешностью не более 10 - 4. ## Примеры Входные данные-1000 -1000 1000 1000Выходные данные40212.3859659494Входные данные0 0 0 0Выходные данные20106.1929829747Входные данные0 0 -10 0Выходные данные23899.0852307386 [samples]
**Definitions** Let $ C_0(x, y) $ denote a disk of radius 100 centered at $ (x, y) $. Let $ C_1(x, y) $ denote a disk of radius 30 centered at $ (x, y) $. Let $ C_2(x, y) $ denote a half-disk (lower semicircle) of radius 60 centered at $ (x, y) $. A smiley $ S(x_0, y_0) $ is defined as: $$ S(x_0, y_0) = C_0(x_0, y_0) \setminus \left( C_1(x_0 - 40, y_0 + 30) \cup C_1(x_0 + 40, y_0 + 30) \right) \setminus C_2(x_0, y_0 - 20) $$ **Given** Two smileys: - $ S_1 = S(x_1, y_1) $ - $ S_2 = S(x_2, y_2) $ with $ -1000 \le x_1, y_1, x_2, y_2 \le 1000 $. **Objective** Compute the area of the union: $$ \text{Area}\left( S_1 \cup S_2 \right) $$
API Response (JSON)
{
  "problem": {
    "name": "A. Пересечение смайликов",
    "description": {
      "content": "Смайлик с центром в точке (x0, y0) представляет из себя окружность радиуса 100 с центром в точке (x0, y0), из которой вырезаны две окружности радиуса 30 с центрами в точках (x0 - 40, y0 + 30) и (x0 + ",
      "description_type": "Markdown"
    },
    "platform": "Codeforces",
    "limit": {
      "time_limit": 2000,
      "memory_limit": 262144
    },
    "difficulty": "None",
    "is_remote": true,
    "is_sync": true,
    "sync_url": null,
    "sign": "CF10144A"
  },
  "statements": [
    {
      "statement_type": "Markdown",
      "content": "Смайлик с центром в точке (x0, y0) представляет из себя окружность радиуса 100 с центром в точке (x0, y0), из которой вырезаны две окружности радиуса 30 с центрами в точках (x0 - 40, y0 + 30) и (x0 + ...",
      "is_translate": false,
      "language": "English"
    },
    {
      "statement_type": "Markdown",
      "content": "**Definitions**  \nLet $ C_0(x, y) $ denote a disk of radius 100 centered at $ (x, y) $.  \nLet $ C_1(x, y) $ denote a disk of radius 30 centered at $ (x, y) $.  \nLet $ C_2(x, y) $ denote a half-disk (l...",
      "is_translate": false,
      "language": "Formal"
    }
  ]
}
Full JSON Raw Segments