问题6818--被污染的牛奶

6818: 被污染的牛奶

[命题人 : ]
时间限制 : 1.000 sec  内存限制 : 128 MiB

题目描述

【题目描述】

农夫约翰,因其农场生产的牛奶质量远近闻名,正在为他的N个好朋友(1≤N≤50)举办一场牛奶品尝会。不幸的是,在聚会上出现的M种牛奶(1≤M≤50)中,只有一种坏掉了,但农夫约翰不知道是哪一种!任何喝了变质牛奶的人以后都会生病,无论是在聚会剩下的时间里还是之后。

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

输入格式】(badmilk.in):

输入的第一行包含整数NMDS

接下来的D(1≤D≤1000)分别包含三个整数pmt,表示人p在时间t时喝了牛奶mp的取值范围是1…N, m的取值范围是1…m,t的取值范围是1…100。一个人可以多次喝同一种牛奶,也可以在同一时间点喝几种类型的牛奶。

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

输出格式】(badmilk.out):

一个整数,指定农民约翰需要获得的药物的最小剂量,这样他就可以保证他有足够多的剂量来治疗所有生病的人,无论是在聚会期间还是在聚会之后。

样例输入】 

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个人和4种牛奶类型。第1个人在时间3生病,第2个人在时间8生病。第三个人不会在聚会上生病,尽管我们可能仍然需要考虑他可能在聚会结束后生病的可能性。让我们逐一考虑牛奶的种类,看看哪些可能被污染;我们知道,如果每个生病的人在生病前都喝了某种类型的牛奶,那么这种牛奶可能是有害的。

牛奶1:两个生病的人(12)在生病前都喝了这种牛奶,所以这可能是坏牛奶。如果是这样,第三个人也喝了它,所以它会导致总共3个人生病(第三个人会在聚会后生病)

牛奶2:两个生病的人在生病前都喝了这种牛奶,所以这也可能是坏牛奶。没有人喝这种牛奶,所以如果这是坏牛奶,最多两个人会生病。

牛奶3:这不可能是坏牛奶,因为第1人在生病之前没有喝它——1人在时间4喝了它,在时间3生病了。如果3号牛奶与1号生病有关,那么1号最迟需要在时间2之前喝下这杯牛奶。

牛奶4:这不可能是坏牛奶,因为第二个人没有喝,但第二个人生病了。

因此,答案是农民约翰必须获得3剂药,因为如果1号牛奶是坏的,那么总共需要治愈3个人。

 

样例输入 复制


样例输出 复制


来源/分类