QOJ.ac
QOJ
ID | 题目 | 提交者 | 结果 | 用时 | 内存 | 语言 | 文件大小 | 提交时间 | 测评时间 |
---|---|---|---|---|---|---|---|---|---|
#69563 | #2442. Welcome Party | he_ren_shi_lyp# | TL | 0ms | 0kb | C++11 | 890b | 2022-12-28 18:17:49 | 2022-12-28 18:17:52 |
Judging History
answer
#include <bits/stdc++.h>
using namespace std;
using i64 = long long;
int main() {
//freopen("in.txt", "r", stdin);
ios::sync_with_stdio(false), cin.tie(0);
int T;
for(cin >> T; T; T --) {
int n;
cin >> n;
vector<pair<i64, i64>> a(n);
for(auto &[x, y] : a) cin >> x >> y;
sort(a.begin(), a.end());
set<i64> s;
vector<i64> mx(n);
mx.back() = a.back().second;
for(int i = n - 2; i >= 0; i --) mx[i] = max(mx[i + 1], a[i].second);
i64 ans = 8e18;
for(int i = 0; i < n; i ++) {
i64 cur = a[i].first;
i64 val = mx[i + 1];
if(val < cur) {
auto it = s.upper_bound(cur);
if(it != s.begin()) it --;
val = max(val, *it);
ans = min(ans, abs(cur - val));
it ++;
if(it != s.end()) val = max(val, *it);
}
ans = min(ans, abs(cur - val));
s.insert(a[i].second);
}
cout << ans << '\n';
}
return 0;
}
详细
Test #1:
score: 0
Time Limit Exceeded
input:
66 5 27 46 89 13 55 8 71 86 22 35 3 3 5 4 7 6 2 2 0 1000000000 1000000000 0 2 1000000000 0 0 1000000000 2 1000000000 0 1000000000 0 2 0 1000000000 0 1000000000 2 1000000000 1000000000 0 0 2 0 0 0 0 2 1000000000 1000000000 1000000000 1000000000 3 90 30 90 50 90 85 3 0 0 0 2 0 5 3 20 30 20 50 20 70 3 ...