milking cows

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】免费获取数百本计算机经典书籍

    milking cows

原创文章受到原创版权保护。转载请注明出处:https://www.ccppcoding.com/archives/50712

非原创文章文中已经注明原地址,如有侵权,联系删除

关注公众号【高性能架构探索】,第一时间获取最新文章

转载文章受原作者版权保护。转载请注明原作者出处!

(0)
上一篇 2023年2月9日 上午2:21
下一篇 2023年2月9日 上午2:22

相关推荐