问题 2229 -- 蒜头君当大厨

2229: 蒜头君当大厨

时间限制: 1 Sec  内存限制: 128 MB
提交: 43  解决: 11
[提交][状态][命题人:]

题目描述

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

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

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

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

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

  4. 菜品 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

对于 30% 的数据:1n41m100d10

对于 60% 的数据:1n1000,并且输入保证有解。

对于 100% 的数据:1n,m200001d100001a,bnab



输出

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


样例输入
Copy
3
5
2 3 2 10
2 2 1 2
2 3 2 5
1 2 3 7
3 3 9
样例输出
Copy
12

提示

来源

 

[提交][状态]