您的位置:首页 > 其它

51Nod 1091 线段的重叠 贪心

2017-11-13 14:43 357 查看


注意减枝

#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
#include<algorithm>
#include<queue>
#include<stack>
using namespace std;
typedef struct node{
int x,y;
}node;
bool cmp(node n1,node n2){
return n1.x<n2.x;
}
int main(){
node no[50000+10];
int n;
scanf("%d",&n);
for(int i=0;i<n;i++){
scanf("%d%d",&no[i].x,&no[i].y);
}
sort(no,no+n,cmp);
int maxn=0;
for(int i=0;i<n;i++){
for(int j=i+1;j<n;j++){
if(no[j].x>no[i].y) break;
if(no[j].y<=no[i].y){
if(no[j].y-no[j].x>maxn) maxn=no[j].y-no[j].x;
}
else{
if(no[i].y-no[j].x>maxn) maxn=no[i].y-no[j].x;
break;
}
}
}
cout<<maxn;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: