cin>>n>>x
ml mr 最终区间 
for(n){
	l r
	if(l>r) swap(l,r);
	ml = max(ml,l);
	mr = min(mr,r);
}
公共区间 ml~mr ;

ml>mr 输出 -1 结束 
 
x 和这个区间的关系 
  x>mr mr-x
  x<ml ml -x
  否则 0

1 条评论

  • @ 2025-2-5 14:38:11
    #include <bits/stdc++.h>
    using namespace std;
    
    int main(){
        int n, x;
        cin >> n >> x;
        int ml = -1;
        int mr = 1001;
        for(int i = 0; i < n; i++){
            int l, r;
            cin >> l >> r;
            if (l > r) swap(l, r);
            ml = max(ml, l);
            mr = min(mr, r);
        }
        if(ml > mr){
            cout << -1;
        }else{
            int a = -1;
            if(x < ml){
                a = ml;
            }else if(x > mr){
                a = mr;
            }else{
                a = x;
            }
            cout << abs(a - x);
        }
        return 0;
    }
    
    
    • 1

    信息

    ID
    11
    时间
    1000ms
    内存
    256MiB
    难度
    7
    标签
    递交数
    94
    已通过
    21
    上传者