結果
問題 |
No.2854 -1 Subsequence
|
ユーザー |
|
提出日時 | 2024-08-25 13:53:21 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 604 bytes |
コンパイル時間 | 3,381 ms |
コンパイル使用メモリ | 284,144 KB |
実行使用メモリ | 29,956 KB |
最終ジャッジ日時 | 2024-08-25 13:53:30 |
合計ジャッジ時間 | 7,202 ms |
ジャッジサーバーID (参考情報) |
judge3 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 29 WA * 11 |
ソースコード
#include <bits/stdc++.h> using namespace std; using ll = long long; int main(){ int N; cin >> N; vector<ll> A(N); for(int i=0; i<N; i++){ cin >> A[i]; } vector able(N+1, vector<bool>(2, true)); vector dp(N+1, vector<ll>(2, LLONG_MIN)); able[1][0] = false; dp[1][1] = -A[0]; for(int i=1; i<N; i++){ if(able[i][0]){ dp[i+1][0] = max(dp[i+1][0], dp[i][0]); dp[i+1][1] = max(dp[i+1][1], dp[i][0] - A[i]); } if(able[i][1]){ dp[i+1][1] = max(dp[i+1][1], dp[i][1]); dp[i+1][0] = max(dp[i+1][0], dp[i][1] + A[i]); } } cout << max(dp[N][0], dp[N][1]) << endl; return 0; }