ENG  RUSTimus Online Judge
Online Judge
Задачи
Авторы
Соревнования
О системе
Часто задаваемые вопросы
Новости сайта
Форум
Ссылки
Архив задач
Отправить на проверку
Состояние проверки
Руководство
Регистрация
Исправить данные
Рейтинг авторов
Текущее соревнование
Расписание
Прошедшие соревнования
Правила
вернуться в форум

Обсуждение задачи 1207. Медиана на плоскости

Why does a simple sort of pairs + finding the median not work?
Послано sweepea 11 ноя 2024 16:21
All the test cases I've come up with have been solved correctly by this method but no AC :(

code:
```
#include <bits/stdc++.h>

using namespace std;

int main() {
  int n;
  cin >> n;

  vector<vector<int>> x(n, vector<int>(3, 0));

  for (int i = 0; i < n; i++) {
    cin >> x[i][0];
    cin >> x[i][1];
    x[i][2] = i + 1;
  }

  sort(x.begin(), x.end());

  auto med = (n - 1) / 2;

  cout << x[med][2] << " " << x[med + 1][2];
}

```

Edited by author 11.11.2024 16:23

Edited by author 11.11.2024 16:23
Re: Why does a simple sort of pairs + finding the median not work?
Послано sweepea 12 ноя 2024 14:43
To answer my own question.

The above code will select for the 2 median points. These don't necessarily create a median line.

Consider the following test case:
4
0 10
1 1
2 2
3 10



The above alogorithm would select (1, 1) and (2,2), which partitions the plane into a section with 2 points, and a section with 0 points; the above approach is incorrect.