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;
}
相关推荐
圣光SG9 小时前
Java操作题练习(七)
java·开发语言·算法
Cx330_FCQ10 小时前
Tmux使用
服务器·git·算法
拳里剑气12 小时前
C++算法:多源BFS
c++·算法·宽度优先·多源bfs
ysa05103012 小时前
【板子】短序列dp(换成维护更小常数维度的dp)
c++·笔记·算法·板子
shwill12312 小时前
PID 算法(三)--- 增量 PID ↔ 单神经元 PID 等价映射
linux·算法
wabs66614 小时前
关于图论【卡码网110.字符串迁移的思考】
数据结构·算法·图论
hanlin0314 小时前
刷题笔记:力扣第242、349题(哈希表)
笔记·算法·leetcode
浮沉98715 小时前
二分查找算法例题(二)
算法
only-qi15 小时前
大模型Agent面试攻略:落地工程痛点、评估体系与Agentic RAG核心精讲
人工智能·算法·面试·职场和发展·langchain·rag
Gauss松鼠会17 小时前
【GaussDB】GaussDB锁阻塞源头查询
java·开发语言·前端·数据库·算法·gaussdb·经验总结