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); }
沒有留言:
張貼留言