SZTG-L-CF909E. Coprocessor

提交1 通过1
通过率100%
时间限制1500ms
内存限制250MiB

题目描述

题目描述

给你 NN 个任务,任务从 00 开始标号,有些只能用主处理器处理,另外的任务只能用副处理器处理。其中存在 MM 个依赖关系,如果任务 ii 依赖于任务 jj,那么称 jj 是 ii 的前继任务。

主处理器和副处理器都可以一次处理很多个任务。一个任务能被处理的条件为其所有的前继任务已经被执行过了,或者前继任务和自己同时被放进同一个处理器处理。

现在给出这些依赖关系和每个任务处理要用的处理器,求副处理器最少运行了几次。保证依赖关系是一张有向无环图。

输入格式

第一行输入两个非负整数 N,M N, M\ 。

接下来输入一行 NN 个整数 Ei (Ei∈{0,1})E _ i\ (E _ i \in \{0, 1\}),若 Ei=0E _ i = 0 则表示任务 ii 只能在主处理器上运行,否则其只能在副处理器上运行。

接下来 MM 行,每行两个非负整数 T1,T2 T _ 1, T _ 2\ ,表示任务 T1T _ 1 依赖于任务 T2T _ 2。

输出格式

一行一个整数表示答案。

感谢 @Styx 提供的翻译。

4 3
0 1 0 1
0 1
1 2
2 3
2
4 3
1 1 1 0
0 1
0 2
3 0
1
1 0
0
0

数据范围

(1≤N≤105, 0≤M≤105)(1 \le N \le 10 ^ 5,\ 0 \le M \le 10 ^ 5)

(0≤Ti<n, T1≠T2)(0 \le T _ i < n,\ T _ 1 \ne T _ 2)