题解 | #数据分类处理#
数据分类处理
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);
}
}
}

