結果
問題 | No.999 てん vs. ほむ |
ユーザー |
![]() |
提出日時 | 2020-02-28 22:36:34 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,112 bytes |
コンパイル時間 | 1,675 ms |
コンパイル使用メモリ | 174,308 KB |
実行使用メモリ | 6,912 KB |
最終ジャッジ日時 | 2024-10-13 18:28:05 |
合計ジャッジ時間 | 3,560 ms |
ジャッジサーバーID (参考情報) |
judge4 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 8 WA * 12 |
ソースコード
#include<bits/stdc++.h> using namespace std; using i64 = int_fast64_t; #define rep(i, N) for(int (i) = 0; (i) < (N); (i)++) #define all(v) (v).begin(), (v).end() #define eb emplace_back i64 f(int& N, deque<i64> dq){ i64 tem = 0, hom = 0; rep(i, N){ size_t sz = dq.size(); if(dq[0] - dq[1] >= dq[sz - 1] - dq[sz - 2]){ hom += dq[0]; tem += dq[1]; rep(i, 2) dq.pop_front(); } else { hom += dq[sz - 1]; tem += dq[sz - 2]; rep(i, 2) dq.pop_back(); } } return hom - tem; } i64 g(int& N, deque<i64> dq){ i64 tem = 0, hom = 0; rep(i, N){ size_t sz = dq.size(); if(dq[1] <= dq[sz - 2]){ hom += dq[0]; tem += dq[1]; rep(i, 2) dq.pop_front(); } else { hom += dq[sz - 1]; tem += dq[sz - 2]; rep(i, 2) dq.pop_back(); } } return hom - tem; } int main(){ int N; cin >> N; deque<i64> dq(2*N); rep(i, 2*N) cin >> dq[i]; cout << max(f(N, dq), g(N, dq)) << endl; }