結果

問題 No.209 Longest Mountain Subsequence
ユーザー alpha_virginisalpha_virginis
提出日時 2015-05-15 23:19:18
言語 C++11
(gcc 11.4.0)
結果
WA  
実行時間 -
コード長 1,041 bytes
コンパイル時間 1,121 ms
コンパイル使用メモリ 144,288 KB
実行使用メモリ 4,380 KB
最終ジャッジ日時 2023-09-20 08:31:36
合計ジャッジ時間 1,756 ms
ジャッジサーバーID
(参考情報)
judge13 / judge14
このコードへのチャレンジ
(要ログイン)

テストケース

テストケース表示
入力 結果 実行時間
実行使用メモリ
testcase_00 WA -
testcase_01 WA -
testcase_02 WA -
testcase_03 WA -
testcase_04 WA -
testcase_05 WA -
権限があれば一括ダウンロードができます

ソースコード

diff #

#include <bits/stdc++.h>

int main() {

  int T;
  int N;
  int A[200];
  int ul, ud, up;
  int dl, dd, dp;

  std::cin >> T;
  for(int i = 0; i < T; ++i) {
    std::cin >> N;
    for(int j = 0; j < N; ++j) {
      std::cin >> A[j];
    }
    ud = 0;
    dd = 1000000001;
    ul = dl = 1;
    up = dp = A[0];
    //std::cout << "l p d" << std::endl;
    //std::cout << dl << " " << dp << " " << dd << std::endl;
    //std::cout << ul << " " << up << " " << ud << std::endl;
    //std::cout << std::endl;
    for(int j = 1; j < N; ++j) {
      if( dd > dp - A[j] && dp > A[j] ) {
	dl++;
	dd = dp - A[j];
	dp = A[j];
      }
      if( ud < A[j] - up ) {
	ul++;
	ud = A[j] - up;
	up = A[j];
	if( dl < ul ) {
	  dl = ul;
	  dd = 1000000001;
	  dp = A[j];
	}
      }
      //std::cout << "l p d" << std::endl;
      //std::cout << dl << " " << dp << " " << dd << std::endl;
      //std::cout << ul << " " << up << " " << ud << std::endl;
      //std::cout << std::endl;
    }
    std::cout << std::max(ul, dl) << std::endl;
  }

  
  return 0;
}
0