Your job is to write a program that will examine a list of beginning and ending times for N (1 <= N <= 5000) farmers milking N cows and compute (in seconds):
- The longest time interval at least one cow was milked.
- The longest time interval (after milking starts) during which no cows were being milked.
PROGRAM NAME: milk2
INPUT FORMAT
| Line 1: | The single integer |
| Lines 2..N+1: | Two non-negative integers less than 1000000, the starting and ending time in seconds after 0500 |
SAMPLE INPUT (file milk2.in)
3 300 1000 700 1200 1500 2100
OUTPUT FORMAT
A single line with two integers that represent the longest continuous time of milking and the longest idle time.SAMPLE OUTPUT (file milk2.out)
900 300
-------------------------------------------------------------------------------
#include<stdio.h>
int s[1000005]={0};
int main(){
int n,x,y,i,add=0,a=0,b=0,La=0,Lb=0,flag=1,st=99999999,ed=0;
scanf("%d",&n);
for(i=0;i<n;i++){
scanf("%d%d",&x,&y);
s[x]++,s[y]--;
if(y>ed) ed=y;
if(x<st) st=x;
}
for(i=st;i<ed;i++){
add+=s[i];
if(add>0){
a++,b=0;
if(a>La) La=a;
}
else{
b++,a=0;
if(b>Lb) Lb=b;
}
}
printf("%d %d\n",La,Lb);
}
沒有留言:
張貼留言