<?php
$length = intval ( $input [ 0 ] [ 0 ] ) ; $input = $input [ 1 ] ;
for ( $i = 0 ; $i < $length ; $i ++ ) {
$maxCombo = max ( $maxCombo , countMaxCombo
( $input , $i , 1 ) ) ; }
echo "$maxCombo \n " ;
// 深さ優先探索 countMaxCombo(対象配列, 直前のindex, 現在のコンボ数)
function countMaxCombo( $arr , $index , $combo ) {
if ( isset ( $dp [ $index ] ) ) return $dp [ $index ] ;
$res = $combo ;
for ( $i = $index + 1 ; $i < $roopEnd ; $i ++ ) {
if ( $arr [ $i ] > $arr [ $index ] ) {
$temp = increase( $arr , $i , $combo + 1 ) ;
if ( $temp > $res ) $res = $temp ;
}
}
$dp [ $index ] = $res ;
return $res ;
}
PD9waHAKCmVycm9yX3JlcG9ydGluZyhFX0FMTCk7CgokaW5wdXQgPSBhcnJheV9tYXAoZnVuY3Rpb24oJGwpIHsKCXJldHVybiBhcnJheV9tYXAoJ2ludHZhbCcsIGV4cGxvZGUoJyAnLCB0cmltKCRsKSkpOwp9LCBleHBsb2RlKCJcbiIsIHRyaW0oZmlsZV9nZXRfY29udGVudHMoJ3BocDovL3N0ZGluJykpKSk7CgokbGVuZ3RoID0gaW50dmFsKCRpbnB1dFswXVswXSk7CiRpbnB1dCA9ICRpbnB1dFsxXTsKZm9yKCRpPTA7ICRpPCRsZW5ndGg7ICRpKyspIHsKCSRtYXhDb21ibyA9IG1heCgkbWF4Q29tYm8sIGNvdW50TWF4Q29tYm8oJGlucHV0LCAkaSwgMSkpOwp9CgplY2hvICIkbWF4Q29tYm9cbiI7CgovLyDmt7HjgZXlhKrlhYjmjqLntKIgY291bnRNYXhDb21ibyjlr77osaHphY3liJcsIOebtOWJjeOBrmluZGV4LCDnj77lnKjjga7jgrPjg7Pjg5zmlbApCmZ1bmN0aW9uIGNvdW50TWF4Q29tYm8oJGFyciwgJGluZGV4LCAkY29tYm8pIHsKCSRkcCA9IGFycmF5KCk7CglpZihpc3NldCgkZHBbJGluZGV4XSkpIHJldHVybiAkZHBbJGluZGV4XTsKCgkkcm9vcEVuZCA9IG1pbihjb3VudCgkYXJyKSwgJGluZGV4KzQpOwoJJHJlcyA9ICRjb21ibzsKCWZvcigkaT0kaW5kZXgrMTsgJGk8JHJvb3BFbmQ7ICRpKyspIHsKCQlpZigkYXJyWyRpXSA+ICRhcnJbJGluZGV4XSkgewoJCQkkdGVtcCA9IGluY3JlYXNlKCRhcnIsICRpLCAkY29tYm8rMSk7CgkJCWlmKCR0ZW1wID4gJHJlcykgJHJlcyA9ICR0ZW1wOwoJCX0KCX0KCSRkcFskaW5kZXhdID0gJHJlczsKCXJldHVybiAkcmVzOwp9
stdin
NTAKMjQgNTAgNTAgMjkgNDggOCAzNCAyNiAxNiA0IDQxIDIwIDQ1IDQzIDggNiAyMSAxOSAyMCAzIDQ0IDI5IDEgMzYgMjQgNDcgNDEgNiA0NSA4IDcgMjMgMTYgMzggMjkgMTMgMTAgMjYgMjUgMzcgMjUgMTAgNDUgMjcgMTUgNDEgNDggMzcgMjQgMzg=
50
24 50 50 29 48 8 34 26 16 4 41 20 45 43 8 6 21 19 20 3 44 29 1 36 24 47 41 6 45 8 7 23 16 38 29 13 10 26 25 37 25 10 45 27 15 41 48 37 24 38