【USACO】milking cows

{
ID: anniel11
PROG: milk2
LANG: PASCAL
}
Program milk2;
Var
    ans1,ans2,i,j,n,sum,head,tail:longint;
    a:array[1..5000,1..2] of longint;
    map:array[1..100000] of integer;
    f:array[0..100000,1..2] of integer;
Begin
    fillchar(map,sizeof(map),0);
    ans1:=0;
    ans2:=0;
    Assign(input, 'milk2.in'); reset(input);
    Assign(output, 'milk2.out'); Rewrite(output);
    Readln(n);
    head:=maxlongint;
    tail:=0;
    fillchar(a,sizeof(a),0);
    for i:=1 to n do
    begin
        readln(a[i,1],a[i,2]);
        if a[i,1]<head then head:=a[i,1];
        if a[i,2]>tail then tail:=a[i,2];
        inc(map[a[i,1]]);
        dec(map[a[i,2]]);
    end;
    for i:=head to tail do
    begin

        sum:=sum+map[i];
        if sum>0 then f[i,1]:=f[i-1,1]+1 else f[i,1]:=0;
        if f[i,1]>ans1 then ans1:=f[i,1];
        if sum<=0 then f[i,2]:=f[i-1,2]+1 else f[i,2]:=0;
        if f[i,2]>ans2 then ans2:=f[i,2];
       // writeln(i,' ',f[i,1],' ',f[i,2]);
    end;
    writeln(ans1,' ',ans2);
    close(input);
    close(output);
End.

 

posted @ 2014-09-11 14:54  OmegaIota  阅读(169)  评论(0编辑  收藏  举报