/*
ID: ahshenb1
PROG: milk2
LANG: C++
*/
#include<fstream>
#include <iostream>
#include <string>
using namespace std;
int a[10000],b[10000];
void qsort(int a[],int i,int j)
{
if(i>=j) return;
int l=i,r=j,mid=a[(i+j)/2];
while(l<=r){
while(a[l]<mid) ++l;
while(a[r]>mid) --r;
if(l<=r){
int t = a[l];
a[l] = a[r];
a[r] = t;
++l;
--r;
}
}
qsort(a,i,r);
qsort(a,l,j);
}
int main()
{
ifstream fin("milk2.in");
ofstream fout("milk2.out");
int n;fin>>n;
for(int i=0;i<n;++i){
fin>>a[i]>>b[i];
}
qsort(a,0,n-1);
qsort(b,0,n-1);
int begin[n],end[n];
begin[0]=a[0];
end[0]=b[0];
int last = end[0]-begin[0],part = 0;
for(int i=1;i<n;++i){
if(a[i]<=end[i-1]){
begin[i]=begin[i-1];
end[i]=b[i];
if(end[i]-begin[i]>last)
last = end[i] - begin[i];
}else{
begin[i]=a[i];
end[i]=b[i];
if(begin[i]-end[i-1]>part)
part = begin[i]-end[i-1];
}
}
fout<<last<<" "<<part<<endl;
return 0;
}
【USACO]】milk2
最新推荐文章于 2020-11-27 17:10:14 发布