// 3637. Trionic Array I function isTrionic(nums: number[]): boolean { if ( nums.length < 4 ) { return false } function isIncreasing(s, e: number): boolean { let i: number = s while ( i < e ) { if ( nums[i] >= nums[i+1] ) { return false } i++ } return true } function isDecreasing(s, e: number): boolean { let i: number = s while ( i < e ) { if ( nums[i] <= nums[i+1] ) { return false } i++ } return true } let p: number = 1 let q: number = 2 let nlen: number = nums.length - 1 while ( true ) { if ( isIncreasing(0, p) && isDecreasing(p, q) && isIncreasing(q, nlen) ) { return true } q++ if ( q >= nlen ) { p++ q = p+1 if ( q >= nlen ) { return false } } } return false }; function main() { function r(n: number[]) { console.log(`[${n}] = ${isTrionic(n)}`) } r([1,3,5,4,2,6]) r([2,1,3]) r([1,2,1,2]) } main()