#P1049. XJOI 1570 双子树

XJOI 1570 双子树

Description

【题意】

后来找到了两棵奇怪的树,由于它们的形态十分相像,双子座的小明一时兴起便把它们命名为“双子树”。小明爬上其中一棵,摘下一个大大的果实。可就在此时,另一棵却有几个果实坠地。

小明细心一看,发现这双子树上的某些果实有一些细丝相连,只要摘下其中一棵树的某一个果实,另一棵树将会有相应的一个或多个(也可能没有)果实坠地而摔坏,这些果实都和摘下的果实用细丝相连。摔坏的果实当然不能吃了。而且,小明发现,那些细丝是没办法弄断的,除非摘下它两端的果实的其中一个。由于这时只有小明一人,他只能眼睁睁地看着它们摔坏。也就是说,小明无法同时摘取任一条细丝两端上的两个果实。于是,不同的摘法最后会得到不同数量的果实,而小明将会用随身带的一个容量为 V(表示能装 V个果实)的大袋子将它们装好。

馋嘴的小明当然希望摘得越多越好啦,那么,他最多可以得到多少个果实呢?

特别地,任两个果实间最多只会有一条细丝相连,同一棵树上的果实间不会有细丝相连,当袋子装满后,小明的口还可以塞进一个。

Input Format

第一行包括四个整数:V 0<=V<=1000),N1,N2 M,分别表示袋子的容量,第一棵树上的果实个数,第二棵树上的果实个数和细丝总数。为了方便计算,小明人为地把果实分别按

1..N1 1..N2标号。

接下来有M行,每行有两个整数 A,B1≤A≤N,1≤B≤N2),表示第一棵树上的果实 A和第二棵树上的果实B有一条细丝相连。

Output Format

输出仅有一个整数,表示小明最多能得到的果实个数。

10 3 3 5
1 2
2 1
2 2
2 3
3 2
4

Hint

(二分图)

Source

储备题