1.题目(挤牛奶)
2.代码
#include<bits/stdc++.h>
using namespace std;
const int MAXN=5010;
struct range
{
int l,r;
}o_R[MAXN],R[MAXN];
int N;
bool cmp(range a,range b)
{
return a.l<b.l;
}
int main()
{
scanf("%d",&N);
int num=0,l,r;
for(int i=0;i<N;i++)
{
scanf("%d%d",&o_R[i].l,&o_R[i].r);
}
sort(o_R,o_R+N,cmp);
R[0].l=o_R[0].l;R[0].r=o_R[0].r;
num++;
for(int i=1;i<N;i++)
{
int q_r=R[num-1].r;
int h_l=o_R[i].l;
int h_r=o_R[i].r;
if(h_l<=q_r)
{
if(h_r>q_r) R[num-1].r=h_r;
}
else
{
R[num].l=h_l;
R[num++].r=h_r;
}
}
int y=0,n=0;
for(int i=0;i<num;i++)
{
y=max(y,R[i].r-R[i].l);
if(i>0) n=max(n,R[i].l-R[i-1].r);
}
printf("%d %d\n",y,n);
}