一个符合答案的值,要在这q个区间内
也就是要大于等于max({l1,l2,l3...lq}),并且小于等于min({r1,r2,r3....rq})。那么在枚举的过程中用两个变量(lmx和rmi)维护这两个值最后进行判断即可,不满足的情况也就是lmx>lmi,满足输出lmi即可
#include <bits/stdc++.h>
using namespace std;
int main() {
	int q;
	cin>>q;
	int mi=1e9,mx=0;
	for(int i=1;i<=q;i++){
		int m,d;
		cin>>m>>d;
		mi=min(mi,m+d);
		mx=max(mx,m-d);
	}
	if(mx>mi)cout<<-1<<'\n';
	else cout<<mi<<'\n';
	return 0;
}
q = int(input())
mi = int(1e9)
mx = 0
for i in range(1, q + 1):
    m, d = map(int, input().split())
    mi = min(mi, m + d)
    mx = max(mx, m - d)
if mx > mi:
    print(-1)
else:
    print(mi)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        int q = sc.nextInt();
        int mi = (int)1e9;
        int mx = 0;
        for (int i = 1; i <= q; i++) {
            int m = sc.nextInt();
            int d = sc.nextInt();
            mi = Math.min(mi, m + d);
            mx = Math.max(mx, m - d);
        }
        if (mx > mi) {
            System.out.println(-1);
        } else {
            System.out.println(mi);
        }
    }
}
        一天,小红与小堡进行猜数游戏,由小红在随机选择一个整数K并给出Q个提示,小堡猜数。
每次给出的提示中包含两个整数M,D---表示M与K的差的绝对值不超过D。
现在,小堡想根据小红给出的Q条提示找出满足提示的最大的K。
输入的第一行包含一个整数Q(1≤Q<105)---代表Q条提示。
随后Q行,每行给出两个整数M,D(0≤M,D≤109)。
输出满足提示的最大的K,若没有这样的数,输出−1。
输入
3
3 3
2 5
5 3
输出
6
输入
3
1 1
2 2
3 3
输出
2