2 条题解
-
0
#include<bits/stdc++.h> using namespace std; struct node{int x,y;}a[5100]; bool cmp(node n1,node n2){if(n1.x!=n2.x)return n1.x<n2.x;else return n1.y<n2.y;} int main() { int n;scanf("%d", &n); for(int i=1;i<=n;i++){scanf("%d%d", &a[i].x, &a[i].y);if(a[i].x>a[i].y)swap(a[i].x,a[i].y);} sort(a+1,a+1+n,cmp); int st=a[1].x,ed=a[1].y,ans1=a[1].y-a[1].x,ans2=0; for(int i=2;i<=n;i++) { if(a[i].x<=ed) { if(a[i].y>ed) { ed=a[i].y; ans1=max(ans1,ed-st); } } else { ans2=max(ans2,a[i].x-ed); st=a[i].x; ed=a[i].y; ans1=max(ed-st,ans1); } } printf("%d %d",ans1,ans2); return 0; } -
0
#include<bits/stdc++.h> using namespace std; struct node{int x,y;}a[5100]; bool cmp(node n1,node n2){if(n1.x!=n2.x)return n1.x<n2.x;else return n1.y<n2.y;} int main() { int n;scanf("%d",&n); for(int i=1;i<=n;i++){scanf("%d%d",&a[i].x,&a[i].y);if(a[i].x>a[i].y)swap(a[i].x,a[i].y);} sort(a+1,a+1+n,cmp); int st=a[1].x,ed=a[1].y,ans1=a[1].y-a[1].x,ans2=0; for(int i=2;i<=n;i++) { if(a[i].x<=ed) { if(a[i].y>ed) { ed=a[i].y; ans1=max(ans1,ed-st); } } else { ans2=max(ans2,a[i].x-ed); st=a[i].x; ed=a[i].y; ans1=max(ed-st,ans1); } } printf("%d %d",ans1,ans2); return 0; }
- 1
信息
- ID
- 983
- 时间
- 1000ms
- 内存
- 128MiB
- 难度
- 7
- 标签
- 递交数
- 291
- 已通过
- 66
- 上传者