题目:现在我们需要查出一些作弊的问答社区中的ID,作弊有两种:
1. A回答了B的问题,同时B回答了A的问题。那么A和B都是第一类作弊ID。
2. 第一类作弊ID用户A、B同时回答了C的问题,那么C是第二类作弊ID。已知每个用户的ID是一串数字,一个问题可能有多个人回答。【搜狗2016研发岗笔试】
输入描述:
每组数据第一行为总问题数N(N小于等于200000),第二行开始每行一个问题,第一个数字为提问人ID,第二个数字为回答人数,后面则为所有回答人的ID。(ID均为0-1000000的整数)
输出描述:
第一行是作弊ID数量,第二行为从小到大的作弊ID(中间用空格隔开,最后一个ID后面没有空格。若没有作弊ID,则不输出第二行)。
示例:
输入
3
1 1 2
2 1 1
3 2 1 2
输出
3
1 2 3
思路:用一个map<int,set<int>>保存输入的数据。进行两次遍历,第一次遍历寻找第一类作弊ID,第二次遍历寻找第二类作弊ID.