AGC013: A - Sorted Arrays
問題
解説
上または下に凸になっている部分が数列の切れ目になる。 この形状を簡単に捉えるために、まずは連続する数字はまとめる。
あとはで形状の数を数え上げれば良い。
int main() { int N; cin >> N; vector<int> A(N); rep(i, N) cin >> A[i]; A.erase(unique(A.begin(), A.end()), A.end()); int ans = 1; REP(i, 2, A.size()) { if ((A[i - 2] < A[i - 1] && A[i - 1] > A[i]) || (A[i - 2] > A[i - 1] && A[i - 1] < A[i])) { ans++; i++; } } cout << ans << endl; }