結果

問題 No.3325 陰陽師
コンテスト
ユーザー のらら
提出日時 2025-10-30 23:06:56
言語 C++23
(gcc 13.3.0 + boost 1.87.0)
結果
WA  
(最新)
AC  
(最初)
実行時間 -
コード長 1,075 bytes
コンパイル時間 3,375 ms
コンパイル使用メモリ 185,656 KB
実行使用メモリ 17,424 KB
最終ジャッジ日時 2025-11-01 02:54:45
合計ジャッジ時間 13,021 ms
ジャッジサーバーID
(参考情報)
judge4 / judge1
このコードへのチャレンジ
(要ログイン)
ファイルパターン 結果
other AC * 24 WA * 6
権限があれば一括ダウンロードができます

ソースコード

diff #

//multisetではなくsetを使ったコード(WA)
#include <iostream>
#include <algorithm>
#include <atcoder/all>
#include <set>
#include <cassert>
using namespace std;
using namespace atcoder;
using ll = long long;
//#define endl "\n";
const long long INF = 1000000000000000000;
ll N, M, B[200009];
set<ll> mst; //ここが間違い

int main(){
  cin >> N >> M;
  assert(1 <= N <= 2e5);
  assert(1 <= M <= N);
  for(int i = 0; i < N; i++){
    ll a;
    cin >> a;
    assert(1 <= a <= 1e9);
    mst.insert(a);
  }
  for(int i = 0; i < M; i++){
    cin >> B[i];
    assert(1 <= B[i] <= 1e9);
  }
  
  vector<ll> vA, vB;
  ll num = 0;
  for(int i = 0; i < M; i++){
    auto itr = mst.lower_bound(B[i]);
    if(itr == mst.end()){
      break;
    }
    vA.push_back(*itr);
    vB.push_back(B[i]);
    mst.erase(mst.find(*itr));
    num++;
  }
  ll ans = 0;
  sort(vA.begin(), vA.end());
  sort(vB.begin(), vB.end());
  for(int i = 0; i < (int)vA.size(); i++){
    ans = max(ans, abs(vA[i] - vB[i]));
  }
  //cout << "num=" << num << endl;
  cout << ans << endl;
  return 0;
}
0