package main import . "fmt" import . "os" import bf "bufio" func main() { rd := bf.NewReader(Stdin) var n int Fscan(rd,&n) taked := false last := -1 ans := 0 for i := 0; i < n; i++ { var a int Fscan(rd,&a) if taked { if last < a { ans++ } else { taked = false } } else { taked = true ans++ } last = a } Println(ans) } /* 考察 A[i] < A[i+1] となっている二段は A[i]を取る取らないに関わらずA[i+1]は任意のタイミングで取ってもよい(A[i]を取る場合はA[i+1]より先に取ることになるため) A[i] > A[i+1] となっている二段は どちらか一方を諦める必要がある A[i+1]を諦めるで大丈夫かなあ…? A[i] > A[i+1] > A[i+2] A[i]を取るとA[i+1]は諦めてA[i+2]は取れる A[i]を諦めるとA[i+1]は取れるがA[i+2]は諦めなければならない 単調減少が連続する長さが奇数の場合は、奇数番目を取るのがいいってことかな…? */