#2225. Contaminated Milk

Contaminated Milk

题目描述

农民约翰因其农场生产的牛奶质量而闻名于世,他正在为他的N\red{N}个最好的朋友举办一场牛奶品尝派对1\red{(1≤}N\red{N≤}50).\red{50). }不幸的是,在派对上展出的M\red{M}种牛奶中1\red{(1≤}M\red{M≤}50\red{50)},其中正好有一个坏了,但农夫约翰不知道是哪一个。任何喝了变质牛奶的人,无论是在派对的剩余时间还是之后,都会生病。

给你一份聚会的记录——谁什么时候喝酒,谁什么时候生病。根据这些信息,你可以推断出哪些牛奶可能是坏的。利用这些知识,帮助农民约翰确定他需要获得的最小剂量的药物,以保证他能够治愈所有在聚 会期间或之后生病的人。

输入格式

输入的第一行包含整数N\red{N}M\red{M}D\red{D}S\red{S}

接下来的D\red{D}线1\red{(1≤}D\red{D≤}1000\red{1000)}每个包含三个整数p\red{p,}m\red{m,}t\red{t,}表示人p\red{p}在时间t\red{t}喝牛奶m\red{m}p\red{p}的值在1\red{1…}N\red{N} 范围内,m\red{m}1\red{1…}m\red{m}范围内,t\red{t}1\red{1…}100\red{100}范围内。一个人可以多次喝同一种牛奶,也可以在同一时间点喝几种类型的牛奶。

接下来的S\red{S}1\red{(1≤}S\red{S≤}N\red{N)} 每个包含两个整数p\red{p,}t\red{t,}表示人p\red{p}在时间t\red{t}生病。p\red{p}的值在1\red{1…}N\red{N}范围内,t\red{t}1\red{1…}100\red{100}范围内。每个人最多会生病一次,而他们之所以生病,是因为他们在某个严格意义上的较早时间点喝了变质的牛奶。

输出格式

一个整数,指定 FarmerJohn\red{Farmer John }需要获得的最小药物剂量,以便他可以保证他将有足够多的剂量来治疗所有生病的人,无论是在聚会期间还是聚会之后。

样例

输入样例

3 4 7 2
1 1 1
1 4 1
1 3 4
1 2 2
3 1 3
2 1 5
2 2 7
1 3
2 8

输出样例

3

提示

3\red{3}个人和4\red{4}种牛奶。第 1\red{1 }人在第 3\red{3 }时间生病,第 2\red{2 }人在第 8\red{8 }时间生病。第 3\red{3 }人在聚会上没有生病,尽管我们可能仍需要考虑他在聚会结束后可能会生病的可能性。让我们一一考虑牛奶的种类,看看哪些是可能被污染的;我们知道,如果每个生病的人在生病之前都喝了这种牛奶,那么这种牛奶可能会不好。

牛奶 1\red{1:}两个病人(1\red{1 }2\red{2)}在生病前都喝了这种牛奶,所以这可能是坏牛奶。如果是这样,人 3\red{3 }也喝了,所以总共会导致 3\red{3 }人生病(聚会后人 3\red{3 }会生病)。

牛奶2\red{2:}两个病人在生病前都喝了这种牛奶,所以这也可能是坏牛奶。没有其他人喝过这种牛奶??,所以如果这是劣质牛奶,最坏的情况是总共 2\red{2 }人可能会生病。

牛奶 3\red{3:}这不可能是坏牛奶,因为人 1\red{1 }在生病前没有喝它——人 1\red{1 }在时间 4\red{4 }喝了它,在时间 3\red{3 }生病了。如果牛奶 3\red{3 }与人 1\red{1 }生病有牵连,人 1\red{1}最迟要在时间 2\red{2 }之前喝完这种牛奶。

牛奶 4\red{4:}这不可能是坏牛奶,因为人 2\red{2 }没有喝它,但人 2\red{2 }生病了。

因此,答案是 FarmerJohn\red{Farmer John }必须获得 3\red{3 }剂药物,因为如果牛奶 1\red{1 }不好,那么总共需要治愈 3\red{3 }人。