#P1029. A.战前筹备(preliminary.cpp)

A.战前筹备(preliminary.cpp)

题目背景

竞赛代替不了战争,就像葡萄酒代替不了鲜血。 ——《光荣与梦想》 机房战争的爆发已是不可避免的,IAKIOI的字句已潜伏在地方的剪贴板里,#define main mian 和#define sort random_shuffle 的代码也在硬盘阴暗的角落里蠢蠢欲动,自动盗取 QQ ,Luogu 账号 的软件隐没在庞大的 Windows 文件夹的迷雾中,等待着钩子函数陷阱的触发。

题目描述

你深深地懂得自己身处战场中央就无法置身事外的道理,准备利用地理优势打一场漂亮的阵地战,并准 备算出机房里每个位置会受到的打击以找到最安全的位置。具体地,机房是一张n个点, m条边的简单 图,每个点都有一个人,一个人可以机惨他身旁的所有人,若这一时刻一个人被机惨,那么下一时刻他 会报复性机惨能机惨到的所有人(若一个时刻它被机惨多次只会报复一次),同时,如果编号为 i的位 置的人被机惨的次数大于等于这个位置的防御力di , 他将因 AKIOI 而社死并退出战斗,即以后别人不会 再机惨他,他也不会在下一轮报复机惨。若一开始由一号点开始机惨身边的所有人,求每个位置的被机 惨次数。

输入格式

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

输出格式

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

样例 #1

样例输入 #1

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

样例输出 #1

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