题解
细节颇多看代码
code
#include<bits/stdc++.h>
using namespace std;
struct unit
{
int s,e;
}milk[5005];
bool cmp(unit a,unit b)
{
return a.s<b.s;
}
int main()
{
int n;
cin>>n;
for(int i=1;i<=n;i++) cin>>milk[i].s>>milk[i].e;
sort(milk+1,milk+1+n,cmp);
int l=milk[1].s,r=milk[1].e,ans1=r-l,ans2=0;
for(int i=2;i<=n;i++)
{
if(r<milk[i].s)
{
ans1=max(ans1,r-l);
ans2=max(ans2,milk[i].s-r);
l=milk[i].s;
}
r=max(r,milk[i].e);//r代表当前奶牛所在的集合中的最远右边界,当遇到断电时,r等于新右边界(一定比原r大)
}
ans1=max(ans1,r-l);//只有遇到断点时才会执行收获操作,假如连续到结尾都没遇到断点,这一段的值不会纳入答案里
ans2=max(ans2,milk[n].s-r);
cout<<ans1<<" "<<ans2;
return 0;
}
标签:USACO1.2,int,Milking,P1204,milk,unit
From: https://www.cnblogs.com/pure4knowledge/p/18017316