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;
}
相关推荐
2301_807997389 分钟前
代码随想录-day26
数据结构·c++·算法·leetcode
闭着眼睛学算法18 分钟前
【双机位A卷】华为OD笔试之【排序】双机位A-银行插队【Py/Java/C++/C/JS/Go六种语言】【欧弟算法】全网注释最详细分类最全的华子OD真题题解
java·c语言·javascript·c++·python·算法·华为od
TL滕19 分钟前
从0开始学算法——第一天(认识算法)
数据结构·笔记·学习·算法
小欣加油20 分钟前
leetcode 3318 计算子数组的x-sum I
c++·算法·leetcode·职场和发展
love is sour38 分钟前
聚类(Clustering)详解:让机器自己发现数据结构
算法·支持向量机·聚类
烟袅1 小时前
LeetCode 142:环形链表 II —— 快慢指针定位环的起点(JavaScript)
前端·javascript·算法
CoovallyAIHub1 小时前
OCR战场再起风云:LightOnOCR-1B凭什么比DeepSeekOCR快1.7倍?(附演示开源地址)
深度学习·算法·计算机视觉
海琴烟Sunshine2 小时前
leetcode 190. 颠倒二进制位 python
python·算法·leetcode
Xの哲學2 小时前
Linux eMMC子系统深度解析:从硬件协议到内核实现
linux·网络·算法·架构·边缘计算
AI柠檬2 小时前
C语言基于MPI并行计算矩阵的乘法
c语言·c++·算法