1370: A战前筹备

内存限制:2 MB 时间限制:1.000 S 标准输入输出
题目类型:传统 评测方式:文本比较 上传者:
提交:1 通过:1

题目描述

    机房战争的爆发已是不可避免的,IAKIOI的字句已潜伏在地方的剪贴板里, #define main mian 和#define sort random_shuffle 的代码也在硬盘阴暗的角落里蠢蠢欲动,自动盗取 QQ ,Luogu 账号的软件隐没在庞大的 Windows 文件夹的迷雾中,等待着钩子函数陷阱的触发。
    你深深地懂得自己身处战场中央就无法置身事外的道理,准备利用地理优势打一场漂亮的阵地战,并准备算出机房里每个位置会受到的打击以找到最安全的位置。具体地,机房是一张 n 个点, 条 m 边的简单图,每个点都有一个人,一个人可以机惨他身旁的所有人,若这一时刻一个人被机惨,那么下一时刻他会报复性机惨能机惨到的所有人(若一个时刻它被机惨多次只会报复一次),同时,如果编号为 i 的位置的人被机惨的次数大于等于这个位置的防御力 di, 他将因 AKIOI 而社死并退出战斗,即以后别人不会再机惨他,他也不会在下一轮报复机惨。若一开始由一号点开始机惨身边的所有人,求每个位置的被机惨次数。

输入格式

    第一行两个整数为 n 和 m 表示机房这张图的点数和边数。
    第二行 n 个整数 di 表示每个位置的防御力。
    第三行到第 m + 2 行,每行两个整数,表示这两个点之间有一条边。

输出格式

    一行 n 个整数,第 i 个整数 ansi 表示编号为 i 的位置收到的攻击次数。

输入样例 复制

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

输出样例 复制

1 1 3 2 1

数据范围与提示

    对10%的数据保证 n ≤ 2, m ≤ 100000, di  ≤ 10
    对30%的数据保证 n  ≤ 10, m  ≤ 100000, di  ≤ 10
    对100%的数据保证 n ≤ 100, m ≤ 100000, di ≤ 100