题解-蒜头君当大厨

蒜头君成为高档酒店大厨,需要满足客人对菜品上菜时间的各种要求,包括先后顺序和时间间隔。在确保满足所有条件的同时,蒜头君希望最后一道菜能尽早完成。题目提供输入数据,包括菜品数量、要求数量及各种时间限制,判断蒜头君是否能完成任务并给出最短的上菜时间。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

蒜头君当大厨
描述

蒜头君苦练厨艺,终于成为了某高档酒店的大厨。

每天上班,蒜头君会被要求做 n 份菜。既然是高档酒店,那么客人们当然是很讲究的,尤其对于上菜的时间有很多要求。客人们的要求被分成下列四种:

菜品 a 的上菜时间必须比菜品 b 的上菜时间早 d 分钟或者更早。

菜品 a 的上菜时间必须比菜品 b 的上菜时间迟 d 分钟或者更迟。

菜品 a 的上菜时间在 d 分钟以后(包含 d 分钟)。

菜品 a 的上菜时间在 d 分钟之前(包含 d 分钟)。

蒜头君的上班时间记为 0 分钟。为了节约时间,在满足客人们要求的情况下,蒜头君希望最后上的一道菜的时间尽可能的早。(每道菜的上菜时间必须不早于蒜头君的上班时间)

输入

第一行输入一个整数 n,表示一共需要上 n 道菜。

第二行输入一个整数 m,表示客人们的要求数量。

接下里 m 行,每行先输入一个整数 op。

如果 op=1,表示描述里的第 1 种要求,后面跟着三个整数 a,b,d。
如果 op=2,表示描述里的第 2 种要求,后面跟着三个整数 a,b,d。
如果 op=3,表示描述里的第 3 种要求,后面跟着两个整数 a,d。
如果 op=4,表示描述里的第 4 种要求,后面跟着两个整数 a,d。

输出

如果蒜头君能满足客人们的要求,输出最后一道菜的上菜时间;否则输出一行 ‘I can’t’。

数据范围和约定

对于所有的数据:1≤n,m≤20000,1≤∣d∣≤10000 ,1≤a,b≤n,a≠b。

样例解释 1

1,2,3 的上菜时间分别为 0,2,12,这样能满足输入客人们的所有要求,并且时间最短。

样例解释 2

t_3t
3

≥t_1t
1

+9, t_1t
1

≥t_3t
3

−1,合并以后得到 t_1t
1

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值