結果

問題 No.3325 陰陽師
コンテスト
ユーザー dice360
提出日時 2026-09-04 22:14:01
言語 C++17(gcc12)
(gcc 12.4.0 + boost 1.92.0 + ACL)
コンパイル:
g++-12 -O2 -lm -std=c++17 -Wuninitialized -DONLINE_JUDGE -o a.out _filename_
実行:
./a.out
結果
WA  
実行時間 -
コード長 1,083 bytes
記録
記録タグの例:
初AC ショートコード 純ショートコード 純主流ショートコード 最速実行時間
コンパイル時間 2,203 ms
コンパイル使用メモリ 208,604 KB
実行使用メモリ 22,912 KB
最終ジャッジ日時 2026-09-04 22:15:14
合計ジャッジ時間 43,869 ms
ジャッジサーバーID
(参考情報)
judge1_0 / judge3_0
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
sample AC * 3
other AC * 5 WA * 16 TLE * 9
権限があれば一括ダウンロードができます

ソースコード

diff #
raw source code

#include <bits/stdc++.h>
using namespace std;
int main()
{
    int N, M;
    cin >> N >> M;
    vector<int> T(M);
    int S;
    multiset<int> st;
    for (int i = 0; i < N; ++i)
    {
        cin >> S;
        st.insert(S);
    }
    st.insert(2e9 + 10);
    int finish = 0;
    multiset<int> st2 = st;
    for (int i = 0; i < M; ++i)
    {
        cin >> T[i];
        auto itr = st.lower_bound(T[i]);
        if (*itr == 2e9 + 10)
            break;
        st.erase(itr);
        finish++;
    }
    if (finish == 0)
    {
        cout << 0 << endl;
        return 0;
    }
    int l = 0, r = 1e9;
    int md;
    while (r - l > 1)
    {
        md = (l + r) / 2;
        st = st2;
        bool check = true;
        for (int i = 0; i < finish; ++i)
        {
            auto itr = st.lower_bound(T[i] + md);
            if (*itr == 2e9 + 10)
            {
                check = false;
                break;
            }
            st.erase(itr);
        }
        if (check)
            l = md;
        else
            r = md;
    }
    cout << l << endl;
    return 0;
}
0