[USACO 2018 Dec P]The Cow Gathering
题号:NC24193
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 32 M,其他语言64 M
64bit IO Format: %lld

题目描述

奶牛们从世界各地聚集起来参加一场大型聚会。总共有N头奶牛,N−1对奶牛互为朋友。每头奶牛都可以通过一些朋友关系认识其他每头奶牛。

她们玩得很开心,但是现在到了她们应当离开的时间了,她们会一个接一个地离开。她们想要以某种顺序离开,使得只要至少还有两头奶牛尚未离开,所有尚未离开的奶牛都还有没有离开的朋友。此外,由于行李寄存的因素,有M对奶牛(ai,bi)必须满足奶牛ai要比奶牛bi先离开。注意奶牛ai和奶牛bi可能是朋友,也可能不是朋友。

帮助奶牛们求出,对于每一头奶牛,她是否可以成为最后一头离开的奶牛。可能会发生不存在满足上述要求的奶牛离开顺序的情况。

输入描述:

输入的第1行包含两个空格分隔的整数N和M。

输入的第2≤i≤N行,每行包含两个整数xi和yi,满足1≤xi,yi≤N,xi≠yi,表示奶牛xi和奶牛yi是朋友关系。

输入的第N+1≤i≤N+M行,每行包含两个整数ai和bi,满足1≤ai,bi≤N,ai≠bi,表示奶牛ai必须比奶牛bi先离开聚会。

输入保证1≤N,M≤10^5。对于占总分20%的测试数据,保证N,M≤3000。

输出描述:

输出N行,每行包含一个整数di,如果奶牛i可以成为最后一头离开的奶牛,则di=1,否则di=0。
示例1

输入

复制
5 1
1 2
2 3
3 4
4 5
2 4

输出

复制
0
0
1
1
1