1 solutions

  • 0
    @ 2025-11-5 19:14:59

    C++ :

    #include<stdio.h>
    #include<string.h>
    #include<algorithm>
    using namespace std;
    
    struct Node{
    	int a, b;
    }p[5010], t;
    bool cmp(Node x, Node y){
    	return x.a < y.a;
    }
    int main(){
    	//freopen("farmer.in","r",stdin);
    	//freopen("farmer.out","w",stdout);
    	int n, i, ans1, ans2;
    	while(scanf("%d", &n) != EOF){
    		for(i = 0; i < n; i++)
    			scanf("%d%d", &p[i].a, &p[i].b);
    		sort(p, p+n, cmp);
    		t = p[0];
    		ans1 = p[0].b-p[0].a;
    		ans2 = 0;
    		for(i = 1; i < n; i++){
    			if(p[i].a >= t.a && p[i].a <= t.b){
    				if(p[i].b > t.b){
    					t.b = p[i].b;
    				}
    			}else{
    				if(ans1 < t.b-t.a) ans1 = t.b-t.a;
    				if(ans2 < p[i].a-t.b) ans2 = p[i].a-t.b;
    				t = p[i];
    			}
    		}
    		if(ans1 < t.b-t.a) ans1 = t.b-t.a;
    		if(ans2 < p[i].a-t.b) ans2 = p[i].a-t.b;
    		printf("%d %d\n", ans1, ans2);
        }
    	return 0;
    }
    
    • 1

    Information

    ID
    19218
    Time
    1000ms
    Memory
    128MiB
    Difficulty
    (None)
    Tags
    # Submissions
    0
    Accepted
    0
    Uploaded By