結果
問題 | No.1597 Matrix Sort |
ユーザー |
![]() |
提出日時 | 2021-07-09 22:14:26 |
言語 | C++17 (gcc 13.3.0 + boost 1.87.0) |
結果 |
AC
|
実行時間 | 541 ms / 1,500 ms |
コード長 | 782 bytes |
コンパイル時間 | 2,281 ms |
コンパイル使用メモリ | 198,840 KB |
最終ジャッジ日時 | 2025-01-22 21:58:39 |
ジャッジサーバーID (参考情報) |
judge2 / judge2 |
(要ログイン)
ファイルパターン | 結果 |
---|---|
sample | AC * 3 |
other | AC * 27 |
ソースコード
#include <bits/stdc++.h> using namespace std; int main() { int64_t n, k, p; cin >> n >> k >> p; vector<int64_t> a(n), b(n); for (auto &&x : a) { cin >> x; } for (auto &&x : b) { cin >> x; } sort(a.begin(), a.end()); sort(b.begin(), b.end()); auto f = [&](int64_t r) { int64_t res = 0; for (auto &&x : a) { res += lower_bound(b.begin(), b.end(), r - x) - b.begin(); } return res; }; int64_t l = 0, r = p; while (r - l > 1) { int64_t mid = (l + r) / 2; if (f(mid + p) - f(p) + f(mid) < k) { l = mid; } else { r = mid; } } cout << l << endl; return 0; }