C01——挤牛奶

三个农民每天清晨 55 点起床,然后去牛棚给三头牛挤奶。

第一个农民在 300300 秒 (从 55 点开始计时) 给他的牛挤奶,一直到 10001000 秒。第二个农民在 700700 秒开始,在 12001200 秒结束。第三个农民在 15001500 秒开始,21002100 秒结束。

期间最长的至少有一个农民在挤奶的连续时间为 900900 秒 (从 300300 秒到 12001200 秒),而最长的无人挤奶的连续时间(从挤奶开始一直到挤奶结束)为 300300 秒 (从 12001200 秒到 15001500 秒)。


你的任务是编一个程序,读入一个有 nn 个农民挤 nn 头牛的工作时间列表,计算以下两点(均以秒为单位):

最长至少有一人在挤奶的时间段。

最长的无人挤奶的时间段。(从有人挤奶开始算起)

输入格式

第一行一个正整数 nn

接下来 nn 行,每行两个非负整数 l,rl,r,表示一个农民的开始时刻与结束时刻。

输出格式

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

输入输出样例

输入 #1复制

复制代码
3
300 1000
700 1200
1500 2100

输出 #1复制

复制代码
900 300

测试代码:

10

2 3

4 5

6 7

8 9

10 11

12 13

14 15

16 17

18 19

1 20

//

1

100 200

objectivec 复制代码
#include<stdio.h>
#include<stdlib.h>
 
long  Max(long a,long b){
    return a>b?a:b;
}
struct Nod{
    long beg;
    long end;
};
int main(){
    int N;
    scanf("%d",&N);
    struct Nod x[N];
    if(N==0)printf("0 0");
    else{
        for(int i=1;i<=N;i++){
            scanf("%ld %ld",&x[i].beg,&x[i].end);
        }
        long Beg=x[1].beg,End=x[1].end;
        long w=End-Beg,f=0;//w最长工作时间,f最长休息时间
        for(int i=2;i<=N;i++){
            if(x[i].beg<=Beg){
                End=Max(End,x[i].end);
                w=Max(w,End-x[i].beg);
            }
            if(x[i].beg<=End&&x[i].beg>Beg){
                End=Max(End,x[i].end);
                w=Max(w,End-Beg);
            }
            else{
                w=Max(End-Beg,x[i].end-x[i].beg);
                f=Max(f,x[i].beg-End);
                Beg=x[i].beg;
                End=x[i].end;
            }
        }
        w=Max(w,End-Beg);
        printf("%ld %ld",w,f);
    }
    return 0;
}
相关推荐
不喜欢学数学er3 分钟前
算法第五十二天:图论part03(第十一章)
算法·深度优先·图论
养成系小王3 分钟前
四大常用排序算法
数据结构·算法·排序算法
NAGNIP4 分钟前
一文搞懂DeepSeek LLM
算法
已读不回14320 分钟前
设计模式-策略模式
前端·算法·设计模式
CoovallyAIHub1 小时前
标注成本骤降,DINOv3炸裂发布!冻结 backbone 即拿即用,性能对标SOTA
深度学习·算法·计算机视觉
BB学长1 小时前
流固耦合|01流固耦合分类
人工智能·算法
汤永红1 小时前
week3-[分支嵌套]方阵
c++·算法·信睡奥赛
广州智造1 小时前
EPLAN教程:流体工程
开发语言·人工智能·python·算法·软件工程·软件构建
自信的小螺丝钉2 小时前
Leetcode 343. 整数拆分 动态规划
算法·leetcode·动态规划
Q741_1472 小时前
C++ 力扣 438.找到字符串中所有字母异位词 题解 优选算法 滑动窗口 每日一题
c++·算法·leetcode·双指针·滑动窗口