朋友与敌人
时间限制:1秒 内存限制:256M
【问题描述】
朋友的朋友是朋友
朋友的敌人是敌人
敌人的朋友是敌人
敌人的敌人是朋友
请你利用上述道理解答下面的问题:
这个世界的所有国家被两个强权划分成了两个敌对阵营,现在各个国家都派出自己的代表到XTY参加瓜分利益的会谈,已知与会的代表总人数为 \(N\),同一阵营国家的代表是朋友,不同阵营国家的代表是敌人。现在有人给出两种说法来描述他们之间的关系:
第一种说法是:1 \(x\ y\),表示 \(x\) 和 \(y\) 是朋友(\(1≤x,y≤N\))。
第二种说法是:2 \(x\ y\),表示 \(x\) 和 \(y\) 是敌人(\(1≤x,y≤N\))。
此人用上述两种说法,一句接一句地说出 \(K\) 句话,这 \(K\) 句话有的是真的,有的是假的。当一句满足下列条件之一时,这句话就是假话:
1)当前的话与前面的某些真话冲突,就是假话;
2)当前的话表示 \(x\) 与 \(x\) 是敌人,就是假话。
你的任务是根据给定的 \(N\) 和 \(K\) 句话,输出假话总数。
【输入格式】
第一行两个整数 \(N\) 和 \(K\);
接下来的 \(K\) 行,是此人依次说出的 \(K\) 句话。
【输出格式】
一个整数,表示假话总数。
【输入输出样例】
Input
10 8
1 1 2
1 2 3
2 1 6
1 6 3
1 9 10
2 1 9
1 3 10
2 6 9
Output
3
【数据说明】
对于 \(100\%\) 的数据,\(0<N≤50000\),\(0<K≤100000\)。
【来源】
Mr.he