Program Listing for File SequenceQueries.h
↰ Return to documentation for file (ADS/algorithm/SequenceQueries.h)
/*--------------------------------------------------------------------------*/
/*------------------------- File SequenceQueries.h -------------------------*/
/*--------------------------------------------------------------------------*/
/*--------------------------------------------------------------------------*/
/*----------------------------- DEFINITIONS --------------------------------*/
/*--------------------------------------------------------------------------*/
#ifndef __ADS_SequenceQueries
#define __ADS_SequenceQueries
/* self-identification: #endif constant */
/*--------------------------------------------------------------------------*/
/*------------------------------ INCLUDES ----------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/Contract.h"
#include "ADS/sort/MergeSort.h"
#include "ADS/sort/Sorted.h"
#include <algorithm>
#include <cstddef>
#include <functional>
#include <map>
#include <numeric>
#include <optional>
#include <ranges>
#include <set>
#include <type_traits>
#include <utility>
#include <vector>
/*--------------------------------------------------------------------------*/
/*--------------------------- NAMESPACE ------------------------------------*/
/*--------------------------------------------------------------------------*/
namespace ADS {
template< class T , class C = std::less<> >
std::vector< std::size_t > smallerToTheRight( const std::vector< T > & A ,
C less = C() );
template< std::ranges::random_access_range R >
std::pair< std::size_t , std::size_t > longestKDistinctRun( const R & S ,
std::size_t k );
template< class T >
requires( std::is_arithmetic_v< T > && ! std::is_same_v< T , bool > )
std::optional< std::pair< T , T > > largestGap(
std::vector< std::pair< T , T > > I );
template< class T , class W = T >
requires std::is_arithmetic_v< T >
W lineAssignment( std::vector< T > H , std::vector< T > L );
/*--------------------------------------------------------------------------*/
} // end( namespace ADS )
/*--------------------------------------------------------------------------*/
/*-------------------------- IMPLEMENTATION --------------------------------*/
/*--------------------------------------------------------------------------*/
#include "ADS/algorithm/impl/SequenceQueries.tpp"
/*--------------------------------------------------------------------------*/
#endif /* SequenceQueries.h included */
/*--------------------------------------------------------------------------*/
/*----------------------- End File SequenceQueries.h -----------------------*/
/*--------------------------------------------------------------------------*/