您的位置:首页 > 其它

USACO 挤牛奶

2014-03-22 23:51 155 查看
首先题意很清晰,给出并列的几个时间段,找出最长有人挤奶时间时间段和最长无人机乃时间段。

把有人挤奶的时间标记为1,无人挤奶的时间标记为0,然后再枚举寻找。

代码:

#include<iostream>
#include<cstring>
#include<cmath>
using namespace std;
int Time[1000010];
int main()
{
int start,end,sum=0,begin=1000010,ansd=0,ansx=0;
int n;
cin>>n;
int i,j;
memset(Time,0,sizeof(Time));
while(n--)
{
cin>>start>>end;
sum=max(sum,end);
begin=min(start,begin);
for(i=start;i<end;i++)
{
Time[i]=1;
}
}
int c=0,d=0;
int a,b;
for(i=begin;i<=sum;i++)
{
if(Time[i])
{
ansd++;
}
if(!Time[i])
{
ansx++;
}
if(Time[i]&&!Time[i+1]||i==sum)
{
c=max(c,ansd);
ansd=0;
}
if(!Time[i]&&Time[i+1])
{
d=max(d,ansx);
ansx=0;
}

}
cout<<c<<' '<<d;
return 0;
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: