QOJ.ac

QOJ

IDProblemSubmitterResultTimeMemoryLanguageFile sizeSubmit timeJudge time
#69563#2442. Welcome Partyhe_ren_shi_lyp#TL 0ms0kbC++11890b2022-12-28 18:17:492022-12-28 18:17:52

Judging History

你现在查看的是最新测评结果

  • [2023-08-10 23:21:45]
  • System Update: QOJ starts to keep a history of the judgings of all the submissions.
  • [2022-12-28 18:17:52]
  • 评测
  • 测评结果:TL
  • 用时:0ms
  • 内存:0kb
  • [2022-12-28 18:17:49]
  • 提交

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;
}

Details

Tip: Click on the bar to expand more detailed information

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
...

output:


result: