結果
問題 |
No.808 Kaiten Sushi?
|
ユーザー |
|
提出日時 | 2019-03-22 23:47:36 |
言語 | C++11(廃止可能性あり) (gcc 13.3.0) |
結果 |
RE
|
実行時間 | - |
コード長 | 826 bytes |
コンパイル時間 | 1,327 ms |
コンパイル使用メモリ | 167,004 KB |
実行使用メモリ | 10,988 KB |
最終ジャッジ日時 | 2024-09-19 07:07:42 |
合計ジャッジ時間 | 12,303 ms |
ジャッジサーバーID (参考情報) |
judge5 / judge3 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 2 RE * 1 |
other | RE * 56 |
ソースコード
#include <bits/stdc++.h> using namespace std; using i64 = long long; int main() { i64 N,L; cin >> N >> L; vector<i64> x(N); vector<i64> y(N); for(int i = 0;i < N;i++) cin >> x[i]; for(int i = 0;i < N;i++) cin >> y[i]; vector<pair<i64,i64>> vec; for(int i = 0;i < N;i++) vec.push_back({x[i], 1}); for(int i = 0;i < N;i++) vec.push_back({y[i], -1}); vector<i64> d(N + 1, 0); sort(begin(vec), end(vec)); i64 MAX = 0; i64 MI = 0; i64 MIN = 0; for(int i = 0;i < N * 2;i++) { d[i + 1] = d[i] + vec[i].second; if(MAX <= d[i + 1]) { MAX = d[i + 1]; MI = i; } if(d[i + 1] <= MIN) { MIN = d[i + 1]; } } i64 delta = MAX - MIN; if(MAX == 0) { cout << delta * L + y.front(); } else { cout << (delta - 1) * L + vec[MI + 1].first; } cout << endl; }