usaco-milk2

来源:互联网 发布:sql prior 编辑:程序博客网 时间:2024/06/05 13:02

usaco水题。

还是模拟,放下每次的开始时间和结束时间,开始时间+1,结束时间-1。

从头往后遍历,st+=sum[i];

当st>0时,说明此时有人工作,当st==0时,说明此时没人工作。

/*ID: rowanha3LANG: C++TASK: milk2*/#include<stdio.h>#include<string.h>#include<iostream>#include<algorithm>using namespace std;int sum[1000001];int main(){    freopen("milk2.in","r",stdin);    freopen("milk2.out","w",stdout);    int n;    cin>>n;    int i,a,b;    int ii;    int jj;    ii=1000001;    jj=0;    for(i=0;i<n;i++)    {        cin>>a>>b;        sum[a]++;        sum[b]--;        if(ii>a)ii=a;        if(jj<b)jj=b;    }    int st=0;    int maxx,minn;    maxx=0;    minn=0;    a=b=0;    for(i=ii;i<=jj;i++)    {        st+=sum[i];        if(st>0)        {            a++;            if(b!=0&&minn<b)minn=b;            b=0;        }        if(st==0)        {            if(a!=0&&maxx<a)maxx=a;            a=0;            b++;        }    }    printf("%d %d\n",maxx,minn);    fclose(stdin);    fclose(stdout);    return 0;}


原创粉丝点击