蒟蒻题站外题求救
  • 板块灌水区
  • 楼主Vitamin_B
  • 当前回复4
  • 已保存回复4
  • 发布时间2023/8/24 17:05
  • 上次更新2023/11/3 01:28:48
查看原帖
蒟蒻题站外题求救
743373
Vitamin_B楼主2023/8/24 17:05

题目描述

泽泽不但喜欢看拳击比赛,而且也喜欢下围棋和编程,所以他决定参加围棋和编程兴趣班。

围棋兴趣班共有 nn 个时间段选择,第 ii 个时间段排在(Li∼RiL_i\sim R_i)。编程兴趣班也有 mm 个时间段选择,第 ii 个时间段排在(Ai∼BiA_i\sim B_i)。他必须要选择一个围棋班和一个编程班的时间段,但他希望选的这两个班中间的休息时间越长越好。

例如,他选了这两个时间段(L1∼R1L_1\sim R_1)和(A1∼B1A_1\sim B_1),假设(L1∼R1L_1\sim R_1)这节课在前面,(A1∼B1A_1\sim B_1)这节课在后面,那么,泽泽在中间休息的时间是 A1−R1A_1-R_1。特别说明,当两节课上课时间有冲突,泽泽在中间休息时间为 00。

泽泽想算一算他所选的两节兴趣课之间,能休息的时间最长是多少?请你帮助泽泽找一找,算一算。

输入

第一行输入一个整数 nn,表示围棋兴趣班可选择的时间段。

下列 nn 行,每行都输入两个整数 LiL_i 和 RiR_i,分别表示泽泽参加第 ii 个围棋班的起止时间。

下面一行输入的一个整数 mm,表示编程兴趣班可选择的时间段。

下列 mm 行,每行都输入两个整数 AiA_i 和 BiB_i,分别表示泽泽参加第 ii 个编程班的起止时间。

输出

输出一个整数,表示两个时间段之间的最长休息时间(如果所有时间段都有冲突,则输出 00)。

样例

样例输入

样例输入 11

3
1 5
2 6
2 3
2
2 4
6 8

样例输入 22

3
1 5
2 6
3 7
2
2 4
1 4

样例输出

样例输出 11

3

样例输出 22

0

样例解释

样例 11,泽泽可以在这段时间(2,32,3)参加围棋班,并在另一段时间(6,86,8)参加编程班。不难算出,在这种情况下,他中间休息的时间是最长的 6−3=36-3=3。

样例 22,他选择任何一段时间,两个兴趣班上课的时间都有冲突,所以答案是 00。

数据范围

对于 60%60\% 的数据,保证 1≤n≤10000,1≤m≤100001\le n\le10000,1\le m\le10000

对于 100%100\%的数据,保证 1≤n≤200000,1≤m≤200000,1≤Li≤Ri≤1000000000,1≤Ai≤Bi≤10000000001\le n\le200000,1\le m\le200000,1\le L_i\le R_i\le1000000000,1\le A_i\le B_i\le1000000000


错误信息

========[test8.out]=========
Expected						      |	Yours
116							      |	120
==============================
time_space_table:
/sample.in:AC mem=2340k time=4ms
/test0.in:AC mem=2340k time=9ms
/test1.in:AC mem=2340k time=8ms
/test2.in:AC mem=2340k time=2ms
/test3.in:AC mem=2340k time=0ms
/test4.in:AC mem=2340k time=2ms
/test5.in:AC mem=2340k time=34ms
/test6.in:AC mem=2340k time=22ms
/test7.in:AC mem=2340k time=1ms
/test8.in:WA mem=2340k time=2ms
/test9.in:AC mem=2340k time=1ms

错误代码

# include <bits/stdc++.h>

# define old_six \
	ios::sync_with_stdio (0);\
	\
	cin.tie (0);\
	\
	cout.tie (0);

# define ffor(i,name) \
	for (auto i = name.begin (); i != name.end (); i ++)

# define iter(type) \
	type :: iterator

# define reg register

# define inl inline

using namespace std;

typedef long long ll;

typedef pair <int, int> pii;

typedef pair <ll, ll> pll;

int n, m, x, y, maxl, maxa, minr = 1e9, minb = 1e9;

int main () {

	old_six

	cin >> n;

	while (n --)
		cin >> x >> y, maxl = max (maxl, x), minr = min (minr, y);

	cin >> m;

	while (m --)
		cin >> x >> y, maxa = max (maxa, x), minb = min (minb, y);
//	cout << maxl << ' ' << maxa << '\n' << minb << ' ' << minr << '\n';
	cout << max ({0, maxl - minb, maxa - minr});

	return 0;

}
2023/8/24 17:05
加载中...