Size: a a a

2020 November 03

AA

Adil Amirov in pro.algorithms
Всем привет. Задача: в массиве для каждого элемента a[i] нужно найти два других, которые стоят "правее" a[i] и при этом меньше, чем a[i]  (0 <= a[i] <= 10^9). Есть решение за квадрат. Вопрос: возможно ли это сделать быстрее?

input
7 2 5 3 1 2 1

output
7 2 5
2 1 1
5 3 1
3 1 1
1 - -
2 1 -
1 - -
источник

D

Dim in pro.algorithms
ты узбек?
источник

D

Dim in pro.algorithms
кто викард и оскам знает?
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Adil Amirov
Всем привет. Задача: в массиве для каждого элемента a[i] нужно найти два других, которые стоят "правее" a[i] и при этом меньше, чем a[i]  (0 <= a[i] <= 10^9). Есть решение за квадрат. Вопрос: возможно ли это сделать быстрее?

input
7 2 5 3 1 2 1

output
7 2 5
2 1 1
5 3 1
3 1 1
1 - -
2 1 -
1 - -
Произвольных?
источник

K

Kotomord_λapki in pro.algorithms
Расскажите человеку про декартово дерево
источник

AA

Adil Amirov in pro.algorithms
Evgenii Zheltonozhskii🇮🇱
Произвольных?
сорри, не уточнил. два "ближайших"
источник

K

Kotomord_λapki in pro.algorithms
Или про дерево отрезков
источник

A

Andrey in pro.algorithms
Kotomord_λapki
Или про дерево отрезков
Да, с ним проще обычно
источник

D

Dim in pro.algorithms
а это (0 <= a[i] <= 10^9) тут при чем?
источник

AA

Adil Amirov in pro.algorithms
ограничение на a[i]
источник

S

Stas in pro.algorithms
Kotomord_λapki
Или про дерево отрезков
Функция в дереве - храним максимальное значение на отрезке?
источник

A

Andrey in pro.algorithms
Stas
Функция в дереве - храним максимальное значение на отрезке?
Можно идти справа налево и хранить в ДО в позиции x самое левое вхождение x из уже рассмотренных
источник

EZ

Evgenii Zheltonozhsk... in pro.algorithms
Adil Amirov
сорри, не уточнил. два "ближайших"
Ну ближайший находится стеком за линию вроде
источник

A

Andrey in pro.algorithms
Andrey
Можно идти справа налево и хранить в ДО в позиции x самое левое вхождение x из уже рассмотренных
А второй ближайший можно найти вторым проходом
источник

A

Andrey in pro.algorithms
Ну либо персистентным ДО, если вы ценитель
источник

VS

Victor Shamparov in pro.algorithms
Dim
а это (0 <= a[i] <= 10^9) тут при чем?
Чтобы знать, что для хранения чисел достаточно int32
источник

D

Dim in pro.algorithms
на питоне это хорошо пишется
источник

AA

Adil Amirov in pro.algorithms
спасибо за мысли, буду думать дальше
источник

K

Kotomord_λapki in pro.algorithms
Stas
Функция в дереве - храним максимальное значение на отрезке?
Ага
источник

K

Kotomord_λapki in pro.algorithms
Andrey
Ну либо персистентным ДО, если вы ценитель
Почему? Просто реализуем функцию "найти минимальный элемент с индексом больше x и значением больше y
источник