// 已经ac,只是差点一分钟提交 import java.util.Arrays; import java.util.Scanner; import java.util.TreeMap; publicclass Main { public static void main(String[] args) { Scanner cin = new Scanner(System.in); while(cin.hasNext()){ TreeMap<String, Integer> list = new TreeMap<>(); int n = cin.nextInt(); int m = cin.nextInt(); int[] price = new int[n]; int[] goods = new int[m]; for(int i=0;i<n;i++){ price[i] = cin.nextInt(); } String temp = cin.nextLine(); for(int i=0;i<m;i++){ String good = cin.nextLine(); //System.out.println(good); if(list.containsKey(good)){ list.put(good, list.get(good)+1); //System.out.println("22"); } else{ list.put(good,1); } } // System.out.println(list.size()); int j=0; int[] goodss = new int[list.size()]; for(String x : list.keySet()){ goodss[j++] = list.get(x); } m = j; // System.out.println(m); Arrays.sort(goodss); Arrays.sort(price); int minres = 0; int maxres = 0; j=0; for(int i=m-1;i>=0;i--){ minres += price[j] * goodss[i]; // System.out.println(price[j]+" *** "+goodss[i]); j++; } j = n-1; for(int i=m-1;i>=0;i--){ maxres += price[j] * goodss[i]; // System.out.println(price[i]+" *** "+goodss[i]); j--; } System.out.println(minres+" "+maxres); } } }
点赞 评论

相关推荐

10-15 09:13
已编辑
天津大学 soc前端设计
点赞 评论 收藏
分享
ArisRobert:统一解释一下,第4点的意思是,公司按需通知员工,没被通知到的员工是没法去上班的,所以只要没被通知到,就自动离职。就是一种比较抽象的裁员。
点赞 评论 收藏
分享
牛客网
牛客企业服务