zoukankan      html  css  js  c++  java
  • Milking Cows 挤牛奶

    Description

    三个农民每天清晨5点起床,然后去牛棚给3头牛挤奶。第一个农民在300时刻(从5点开始计时,秒为单位)给他的牛挤奶,一直到1000时刻。第二个农民在700时刻开始,在 1200时刻结束。第三个农民在1500时刻开始2100时刻结束。期间最长的至少有一个农民在挤奶的连续时间为900秒(从300时刻到1200时刻),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为300时刻(从1200时刻到1500时刻)。 你的任务是编一个程序,读入一个有N个农民(1 <= N <= 5000)挤N头牛的工作时间列表,计算以下两点(均以秒为单位): 最长至少有一人在挤奶的时间段。 最长的无人挤奶的时间段。(从有人挤奶开始算起)

    Input

    Line 1: 一个整数N。 Lines 2..N+1: 每行两个小于1000000的非负整数,表示一个农民的开始时刻与结束时刻。

    Output

    一行,两个整数,即题目所要求的两个答案。

    Sample Input

    3
    300 1000
    700 1200
    1500 2100

    Sample Output

    900 300
    #include <algorithm>
    #include <iostream>
    #include <cstdio>
    #include <cstring>
    #include <cmath>
    using namespace std;
    typedef long long ll;
    const int MAX=1e6+1;
    int flag[MAX]={0};
    int main()
    {
        ll n,i;
        ll a,b,minn=MAX,maxx=0,ans1=0,ans2=0,sum1=0,sum2=0;
        scanf("%lld",&n);
        while(n--)
        {
            scanf("%lld%lld",&a,&b);
            for(i=a;i<b;i++)//不能写=
                flag[i]=1;
            if(b>maxx)
                maxx=b;
            if(a<minn)
                minn=a;
        }
        for(i=minn;i<maxx;i++)//不能写=
        {
            if(flag[i]==1)
            {
                sum1++;
                sum2=0;
                if(sum1>=ans1)
                    ans1=sum1;
            }
            else
            {
                sum2++;
                sum1=0;
                if(sum2>=ans2)
                    ans2=sum2;
            }
        }
        //printf("%lld %lld ",maxx,minn);
        printf("%lld %lld
    ",ans1,ans2);
        return 0;
    }
    
  • 相关阅读:
    plsql各版本官网下载地址
    docker容器启动rabbitmq并开启web控制台
    SM3杂凑算法实现
    快速设置IP、DNS等信息的bat脚本
    Windows下nginx的启动,重启,关闭等功能bat脚本
    记一次docker容器中运行springboot程序日志打印的中文变成问号
    calico 指定pod 网段
    helm 的安装使用
    K8s 节点断开连接后,本在运行的 Pod 会如何?
    nginx docker 安装ping 命令
  • 原文地址:https://www.cnblogs.com/zcy19990813/p/9702705.html
Copyright © 2011-2022 走看看