ecnerwala's competitive programming library
#include "order_statistic.hpp"
| Coverage | Exec / Excl / Total | |
|---|---|---|
| Lines | 100.0% | 0 / 0 / 0 |
| Full report |
#pragma once
#include <ext/pb_ds/assoc_container.hpp>
template <typename K, typename V, typename Comp = std::less<K>>
using order_statistic_map = __gnu_pbds::tree<
K, V, Comp,
__gnu_pbds::rb_tree_tag,
__gnu_pbds::tree_order_statistics_node_update
>;
template <typename K, typename Comp = std::less<K>>
using order_statistic_set = order_statistic_map<K, __gnu_pbds::null_type, Comp>;
// Supports
// auto iterator = order_statistic_set().find_by_order(idx); // (0-indexed)
// int num_strictly_smaller = order_statistic_set().order_of_key(key);
#include <ext/pb_ds/assoc_container.hpp>
#line 2 "src/order_statistic.hpp"
#line 4 "src/order_statistic.hpp"
template <typename K, typename V, typename Comp = std::less<K>>
using order_statistic_map = __gnu_pbds::tree<
K, V, Comp,
__gnu_pbds::rb_tree_tag,
__gnu_pbds::tree_order_statistics_node_update
>;
template <typename K, typename Comp = std::less<K>>
using order_statistic_set = order_statistic_map<K, __gnu_pbds::null_type, Comp>;
// Supports
// auto iterator = order_statistic_set().find_by_order(idx); // (0-indexed)
// int num_strictly_smaller = order_statistic_set().order_of_key(key);
// clang-format off
// @formatter:off
#pragma GCC diagnostic push
#pragma GCC diagnostic ignored "-Wpragmas"
#pragma GCC diagnostic ignored "-Wunknown-warning-option"
#pragma GCC diagnostic ignored "-Wmisleading-indentation"
#pragma GCC diagnostic ignored "-Wmultistatement-macros"
#include <ext/pb_ds/assoc_container.hpp>
// src/order_statistic.hpp
template<typename K,typename V,typename Comp=std::less<K>>
using order_statistic_map=__gnu_pbds::tree<
K,V,Comp,
__gnu_pbds::rb_tree_tag,
__gnu_pbds::tree_order_statistics_node_update
>;
template<typename K,typename Comp=std::less<K>>
using order_statistic_set=order_statistic_map<K,__gnu_pbds::null_type,Comp>;
#pragma GCC diagnostic pop
// clang-format on
// @formatter:on
#pragma once
#include <ext/pb_ds/assoc_container.hpp>
template <typename K, typename V, typename Comp = std::less<K>>
using order_statistic_map = __gnu_pbds::tree<
K, V, Comp,
__gnu_pbds::rb_tree_tag,
__gnu_pbds::tree_order_statistics_node_update
>;
template <typename K, typename Comp = std::less<K>>
using order_statistic_set = order_statistic_map<K, __gnu_pbds::null_type, Comp>;
// Supports
// auto iterator = order_statistic_set().find_by_order(idx); // (0-indexed)
// int num_strictly_smaller = order_statistic_set().order_of_key(key);