結果
問題 |
No.808 Kaiten Sushi?
|
ユーザー |
![]() |
提出日時 | 2019-03-25 23:07:50 |
言語 | C++14 (gcc 13.3.0 + boost 1.87.0) |
結果 |
WA
|
実行時間 | - |
コード長 | 1,191 bytes |
コンパイル時間 | 529 ms |
コンパイル使用メモリ | 65,620 KB |
実行使用メモリ | 6,824 KB |
最終ジャッジ日時 | 2024-10-09 17:12:50 |
合計ジャッジ時間 | 4,992 ms |
ジャッジサーバーID (参考情報) |
judge2 / judge5 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 15 WA * 41 |
ソースコード
#include <iostream> using namespace std; int main () { int n, L; cin >> n >> L; int x[n], y[n]; for (int i = 0; i < n; i++) cin >> x[i]; for (int i = 0; i < n; i++) cin >> y[i]; int i = 0, j = 0, prev = 0, count = 0, pos = 0; long long ans = 0; int consecCount[2] = {0, 0}; while (i < n || j < n) { if (j == n) { if (prev == 1) count = 0, pos = x[i]; count += n - i; i = n; } else if (i == n) { if (prev == 0) count = 0, pos = y[j]; count += n - j; j = n; } else if (x[i] < y[j]) { if (prev == 0) count++; else { prev = 0; count = 1; pos = x[i]; } i++; } else { if (prev == 1) count++; else { prev = 1; count = 1; pos = y[j]; } j++; } consecCount[prev] = max(consecCount[prev], count); int loops = count; if (prev == 1 && consecCount[0] < count) loops++; ans = max(ans, (long long)(loops - 1) * L + pos); } cout << ans << endl; }