匹配
题号:NC258020
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

众所周知,匈牙利算法又称NTR算法,他解决了最大匹配问题。所以NTR能解决纯爱(不是)
现在小沙收到了 n 个男生,以及 n 个女生的简历,想要帮他们促成姻缘。
他惊奇的发现对于每个人,不管是男生,还是女生,他们都有两条相互暗恋的一条红线。
小沙希望你能帮他选择出尽可能多的红线,使得男生和女生能经可能的匹配上。
PS:一个男生只能和一个女生匹配!!!!一个女生只能和一个男生匹配!!!!

由于本题读入量较大,所以如果你使用的不是C/C++语言,请切换成C/C++语言。
如果你使用的是C/C++语言,那么这里给出快读模板
int read() {
    char ch;
    int x = 0;
    bool f = true;
    for (ch = getchar(); !isdigit(ch); ch = getchar())
        if (ch == '-')
            f ^= f;
    for (; isdigit(ch); ch = getchar())
        x = (x << 3) + (x << 1) + ch - 48;
    return f ? x : -x;
}


输入描述:

第一行输入一个数字 n
随后 n 行,每行两个数字 ab 分别代表第 i 个男生暗恋的且暗恋他的两个女生的编号。
保证对于每个女生的编号一定出现两次。
保证 a 不等于 b
2 \leq n \leq 10^7

输出描述:

输出最大匹配数量。
示例1

输入

复制
3
1 3
2 3
1 2

输出

复制
3