usaco_milk2

/* ID:mingcha1 PROG: milk2 LANG: C++ */ #include<iostream> #include<fstream> using namespace std; ofstream fout ("milk2.out"); ifstream fin ("milk2.in"); const int SIZE=5005; //#define DEBUG_a //#define DEBUG_set struct node{ int bgn,end,v; }; int num,n; int cmp(void const* a,void const *b){ return (*(node*)a).bgn>(*(node*)b).bgn?1:-1; } void forset(node a[SIZE],node set[SIZE]){ set[num].bgn=a[num].bgn; set[num].end=a[num].end; num++; int i; for(i=1;i<n;++i){ if(a[i].bgn<=set[num-1].end && a[i].end>set[num-1].end){ set[num-1].end=a[i].end; } if(a[i].bgn>set[num-1].end){ num++; set[num-1].bgn=a[i].bgn; set[num-1].end=a[i].end; } } for(int i=0;i<num;++i){ set[i].v=set[i].end-set[i].bgn; } } int main(){ node a[SIZE],set[SIZE]; fin>>n; for(int i=0;i<n;++i){ fin>>a[i].bgn>>a[i].end; } qsort(a,n,sizeof(a[0]),cmp); #ifdef DEBUG_a fout<<"About a:*************"<<endl; for(int i=0;i<n;++i){ fout<<a[i].bgn<<" "<<a[i].end<<endl; } #endif forset(a,set); #ifdef DEBUG_set fout<<"About set:****************"<<endl; fout<<"num:"<<num<<endl; for(int i=0;i<num;++i){ fout<<set[i].bgn<<" "<<set[i].end<<endl; } #endif int max1=set[0].v; int max2=0; for(int i=1;i<num;++i){ if(max1<set[i].v){ max1=set[i].v; } if(max2<set[i].bgn-set[i-1].end){ max2=set[i].bgn-set[i-1].end; } } fout<<max1<<" "<<max2<<endl; }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值