3623 - 社交网络(sns)

题目描述

在一个社交网络服务(SNS)中,有 N 个用户,分别用从 1 到 N 的数字标记。

在这个SNS中,两个用户可以成为朋友。友谊是双向的;如果用户X是用户Y的朋友,那么用户Y总是用户X的朋友。

目前,在SNS上有 M 对朋友关系,第 i 对由用户 Ai 和 Bi 组成。

确定以下操作可以执行的最大次数:

操作:选择三个不同的用户 X 、Y和 Z ,使得 X 和 Y 是朋友,Y 和 Z 是朋友,但 X 和 Z不是朋友。让 X 和 Z 成为朋友。

输入

从文件 sns.in 中读入数据。

第一行包含两个正整数 N 和 M,表示有 N 个用户,M 对朋友关系.

接下来 M 行,每行描述第 i 对朋友关系。

输出

输出到文件 sns.out 中。

输出一个整数,表示能新增的友谊数。

样例

输入

4 3
1 2
2 3
1 4

输出

3

输入

3 0

输出

0

输入

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

输出

12
说明

【样例 1 解释】

三个新的友谊可以如下产生:

  1. 用户 1 与用户 3 成为朋友,用户 3 是他们的朋友(用户 2 )的朋友。

  2. 用户 3 与用户 4 成为朋友,用户 4 是他们的朋友(用户 1 )的朋友。

  3. 用户 2 与用户 4 成为朋友,用户 4 是他们的朋友(用户 1 )的朋友。

不会有四个或更多的新友谊产生。

【数据范围】

对于 40% 的数据:1 ≤ N ≤ 1000

对于 100% 的数据:1 ≤ N ≤ 2×10^5,1 ≤ M ≤ 2×10^5,1 ≤ Ai ≤ Bi ≤ N

注意:重复的边算一条边。

题目参数
时间限制 1 秒
内存限制 128 MB
提交次数 24
通过人数 7
金币数量 3 枚
难度 基础


上一题 下一题