http://ace.delos.com/usacoprob2?a=5rGlhwmarzs&S=milk2
/* ID:billat11 LANG:C++ TASK:milk2 */ #include <iostream> #include <algorithm> #include <cstdio> #include <fstream> #include <assert.h> using namespace std; struct milk { int s; int e; }; struct milk inmilk[5005],outmilk[5005]; bool cmp(struct milk a,struct milk b) { return (a.s<=b.s); } int main() { //FILE *in,*out; //in = fopen("beads.in", "r"); //out = fopen ("beads.out", "w"); fstream input, output; // string inputFilename = "beads.in", outputFilename = "beads.out"; //input.open(inputFilename.c_str(), ios::in); //output.open(outputFilename.c_str(), ios::out); input.open("milk2.in",ios::in); output.open("milk2.out",ios::out); //assert(in != NULL && out != NULL); int n,start,end,num,con,idle; struct milk pre; input>>n; int i; for(i=0;i<n;i++) { input>>start>>end; inmilk[i].s=start; inmilk[i].e=end; } sort(inmilk,inmilk+n,cmp); num=0; pre.s=inmilk[0].s; pre.e=inmilk[0].e; inmilk[n].s=1000005; inmilk[n].e=1000005; for(i=1;i<=n;i++) { if(inmilk[i].s<=pre.e) { pre.e=max(inmilk[i].e,pre.e); } else { num++; outmilk[num].s=pre.s; outmilk[num].e=pre.e; pre.s=inmilk[i].s; pre.e=inmilk[i].e; } } con=0; idle=0; for(i=1;i<=num;i++) { if(outmilk[i].e-outmilk[i].s>con) con=outmilk[i].e-outmilk[i].s; } i=2; if(num>=2) { while(i<=num) { if(outmilk[i].s-outmilk[i-1].e>idle) idle=outmilk[i].s-outmilk[i-1].e; i++; } } output<<con<<" "<<idle<<endl; //fclose(in); //fclose(out); return 0; }
原文链接: https://www.cnblogs.com/wuzhibin/archive/2012/05/21/2512185.html
欢迎关注
微信关注下方公众号,第一时间获取干货硬货;公众号内回复【pdf】免费获取数百本计算机经典书籍
原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/50712
非原创文章文中已经注明原地址,如有侵权,联系删除
关注公众号【高性能架构探索】,第一时间获取最新文章
转载文章受原作者版权保护。转载请注明原作者出处!