描述
TOJ由于在早期没有题目搜索功能,导致系统内出现了很多重复的题目,为了检查题目重复情况,crq需要统计出系统内哪些题目是重复的,现在就把这个任务交给你了。
输入
输入数据有多组,每组数据的第1行是题库总量t,t<=10000。接下来有t行,每行有两个数据,分别为题号(题号在1001至11000之间)和标题(标题是一个字符串,可能包含空格)。
为简化问题,假设标题长度不超过20个字符,行末没有空格。
输入以EOF结束。
输出
请根据标题的字典序输出所有有重复的题目信息,每个信息占一行。
每行包括一个标题以及所有重复的题号,并按照题号的顺序从小到大排列。之间用空格分开。
样例输入
5
1001 a+b1003 humble number1002 humble number1004 hello world1005 a+b样例输出
a+b 1001 1005
humble number 1002 1003题解:map+list,采用java
code:
import java.util.ArrayList;import java.util.Collections;import java.util.List;import java.util.Map;import java.util.Scanner;import java.util.TreeMap;public class Main{ public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()) { int n = cin.nextInt(); Map> result = new TreeMap >(); for(int i=0; i list = new ArrayList (); list.add(x); result.put(b, list); } } for(Map.Entry > mp: result.entrySet()) { List list = mp.getValue(); if(list.size()>1) { Collections.sort(list); System.out.print(mp.getKey()); for(Integer i : list) { System.out.print(" "+i); } System.out.println(); } } } cin.close(); }}