//! Rod Cutting (Generic, Production-Grade)
//!
//! Returns the maximum obtainable value by cutting up the rod and selling the pieces.
//!
//! # Type Parameters
//! * `T`: Value type. Must implement `Copy` + `Add<Output = T>` + `Ord` + `Default`.
//!
//! # Example
//! ```rust
//! use pofk_algorithm::dp_algorithms::rod_cutting::*;
//! let prices = vec![1, 5, 8, 9, 10, 17, 17, 20];
//! let n = 8;
//! assert_eq!(rod_cutting(&prices, n), 22);
//! ```
use Add;