101573: [AtCoder]ABC157 D - Friend Suggestions

Memory Limit:256 MB Time Limit:2 S
Judge Style:Text Compare Creator:
Submit:0 Solved:0

Description

Score : $400$ points

Problem Statement

An SNS has $N$ users - User $1$, User $2$, $\cdots$, User $N$.

Between these $N$ users, there are some relationships - $M$ friendships and $K$ blockships.

For each $i = 1, 2, \cdots, M$, there is a bidirectional friendship between User $A_i$ and User $B_i$.

For each $i = 1, 2, \cdots, K$, there is a bidirectional blockship between User $C_i$ and User $D_i$.

We define User $a$ to be a friend candidate for User $b$ when all of the following four conditions are satisfied:

  • $a \neq b$.
  • There is not a friendship between User $a$ and User $b$.
  • There is not a blockship between User $a$ and User $b$.
  • There exists a sequence $c_0, c_1, c_2, \cdots, c_L$ consisting of integers between $1$ and $N$ (inclusive) such that $c_0 = a$, $c_L = b$, and there is a friendship between User $c_i$ and $c_{i+1}$ for each $i = 0, 1, \cdots, L - 1$.

For each user $i = 1, 2, ... N$, how many friend candidates does it have?

Constraints

  • All values in input are integers.
  • $2 ≤ N ≤ 10^5$
  • $0 \leq M \leq 10^5$
  • $0 \leq K \leq 10^5$
  • $1 \leq A_i, B_i \leq N$
  • $A_i \neq B_i$
  • $1 \leq C_i, D_i \leq N$
  • $C_i \neq D_i$
  • $(A_i, B_i) \neq (A_j, B_j) (i \neq j)$
  • $(A_i, B_i) \neq (B_j, A_j)$
  • $(C_i, D_i) \neq (C_j, D_j) (i \neq j)$
  • $(C_i, D_i) \neq (D_j, C_j)$
  • $(A_i, B_i) \neq (C_j, D_j)$
  • $(A_i, B_i) \neq (D_j, C_j)$

Input

Input is given from Standard Input in the following format:

$N$ $M$ $K$
$A_1$ $B_1$
$\vdots$
$A_M$ $B_M$
$C_1$ $D_1$
$\vdots$
$C_K$ $D_K$

Output

Print the answers in order, with space in between.


Sample Input 1

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

Sample Output 1

0 1 0 1

There is a friendship between User $2$ and $3$, and between $3$ and $4$. Also, there is no friendship or blockship between User $2$ and $4$. Thus, User $4$ is a friend candidate for User $2$.

However, neither User $1$ or $3$ is a friend candidate for User $2$, so User $2$ has one friend candidate.


Sample Input 2

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

Sample Output 2

0 0 0 0 0

Everyone is a friend of everyone else and has no friend candidate.


Sample Input 3

10 9 3
10 1
6 7
8 2
2 5
8 4
7 3
10 9
6 4
5 8
2 6
7 5
3 1

Sample Output 3

1 3 5 4 3 3 3 3 1 0

Input

题意翻译

### 题目大意 某平台上有 $N$ 名用户,其中,有 $M$ 对用户是互相关注的,有 $K$ 对用户是互相拉黑的。 当用户 $i$ 和用户 $j$ 满足以下条件时,用户 $j$ 就是用户 $i$ 的“推荐用户”: + 用户 $i$ 可以与 用户 $j$ 通过若干对用户的互相关注关系连接起来。(比如用户 1 与用户 2,用户 2 与用户 3 都互相关注,则用户 1 和 用户 3 就可以通过他们的关系连接起来) + 用户 $i$ 与用户 $j$ 没有互相关注或互相拉黑。 求每位用户的“推荐用户”的数量。 数据保证不会存在一对用户既互相关注又互相拉黑。 ### 输入格式 第一行输入三个正整数 $N,M,K$; 接下来 $M$ 行,每行两个正整数 $A_i,B_i$,表示一对互相关注的用户; 再接下来 $K$ 行,每行两个正整数 $C_i,D_i$,表示一对互相拉黑的用户。 ### 输出格式 输出用空格隔开的 $N$ 个整数,第 $i$ 个数表示用户 $i$ 的“推荐用户”的数量。 ### 说明 $2 \le N \le 10^5, 0 \le M,K \le 10^5$。 翻译 by @CarroT1212

加入题单

算法标签: