题解 | #数据分类处理#
数据分类处理
https://www.nowcoder.com/practice/9a763ed59c7243bd8ab706b2da52b7fd
import java.util.*; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); while (in.hasNext()) { String str_I = in.nextLine(); String str_R = in.nextLine(); String[] s_I = str_I.split(" "); String[] s_R = str_R.split(" "); int[] m_R = new int[]{}; Map<Integer,int[]> map = new TreeMap<>(); for(int i=1;i<s_R.length;i++){ map.put(Integer.parseInt(s_R[i]),m_R); } for(int b:map.keySet()){ int[] bb = new int[s_I.length]; int m = 0; for(int i=1;i<s_I.length;i++){ if(s_I[i].contains(String.valueOf(b))) { m++; bb[m] = i; } } bb[0]=m; map.put(b,bb); } StringBuilder pri = new StringBuilder(); int sum = 0; for(int b:map.keySet()){ if(map.get(b)[0]==0) continue; pri.append(b+" "+map.get(b)[0]+" "); for(int i = 1;i<=map.get(b)[0];i++){ pri.append(map.get(b)[i]-1); pri.append(" "+s_I[map.get(b)[i]]+" "); } sum = sum + map.get(b)[0]*2 + 2; } System.out.println(sum+" "+pri); } } }