結果
問題 |
No.2854 -1 Subsequence
|
ユーザー |
|
提出日時 | 2024-08-25 22:10:49 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,032 bytes |
コンパイル時間 | 1,039 ms |
コンパイル使用メモリ | 118,168 KB |
最終ジャッジ日時 | 2025-02-24 02:13:23 |
ジャッジサーバーID (参考情報) |
judge2 / judge4 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
other | AC * 30 WA * 10 |
ソースコード
#include<iostream> #include<string> #include<queue> #include<vector> #include<cassert> #include<random> #include<set> #include<map> #include<cassert> #include<unordered_map> #include<bitset> #include<numeric> #include<algorithm> using namespace std; typedef long long ll; const int inf=1<<30; const ll INF=1LL<<62; typedef pair<int,ll> P; typedef pair<int,P> PP; const ll MOD=998244353; const int MAXN=100000; int main(){ int N; cin>>N; vector<ll> A(N); for(int i=0;i<N;i++){ cin>>A[i]; } vector dp(N+1,vector<ll>(2,-INF)); dp[0][0]=0; for(int i=0;i<N;i++){ for(int t=0;t<2;t++){ //何も追加しない dp[i+1][t]=max(dp[i+1][t],dp[i][t]); } //追加する { //-1*A[i]を追加 dp[i+1][1]=max(dp[i+1][1],dp[i][0]-A[i]); } { //A[i]を追加 dp[i+1][0]=max(dp[i+1][0],dp[i][1]+A[i]); } } ll ans=max(dp[N][0],dp[N][1]); cout<<ans<<endl; }