結果
問題 |
No.258 回転寿司(2)
|
ユーザー |
![]() |
提出日時 | 2025-10-05 15:11:43 |
言語 | C++23 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 2 ms / 2,000 ms |
コード長 | 609 bytes |
コンパイル時間 | 2,818 ms |
コンパイル使用メモリ | 275,252 KB |
実行使用メモリ | 7,716 KB |
最終ジャッジ日時 | 2025-10-05 15:13:01 |
合計ジャッジ時間 | 6,780 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 4 |
other | AC * 67 |
ソースコード
#include<bits/stdc++.h> using namespace std; int n,v[1001],dp[1001][2],pre[1001][2]; void print(int now,int z) { if(now==0) { return; } print(now-1,pre[now][z]); if(z==1) { cout<<now<<" "; } return; } int main() { cin>>n; for(int i=1;i<=n;i++) { cin>>v[i]; } for(int i=1;i<=n;i++) { dp[i][1]=dp[i-1][0]+v[i]; pre[i][1]=0; if(dp[i-1][0]>dp[i-1][1]) { dp[i][0]=dp[i-1][0]; pre[i][0]=0; } else { dp[i][0]=dp[i-1][1]; pre[i][0]=1; } } if(dp[n][0]>dp[n][1]) { cout<<dp[n][0]<<endl; print(n,0); } else { cout<<dp[n][1]<<endl; print(n,1); } return 0; }