public static void main(String[] args) { int n,m; Scanner reader = new Scanner(System.in); while(reader.hasNextLine()){ n = reader.nextInt(); m = reader.nextInt(); if(n>=1 && m<=1000){ int[] arr = new int[n]; int i = 0; while(i < n){ int temp = reader.nextInt(); if(temp <= 100000){ arr[i] = temp; i++; } } sortArr(arr); reader.nextLine(); String[] things = new String[m]; int j = 0; while(j < m){ String temp = reader.nextLine(); if(!temp.equals("") && temp.length()<=32){ things[j] = temp; j++; } } int minR = 0,maxR = 0; Map<String,Integer> hashMap = new HashMap<String,Integer>(); for (String string : things) { if(hashMap.containsKey(string)){ int tmp = hashMap.get(string); tmp++; hashMap.put(string, tmp); }else{ hashMap.put(string, 1); } } int count = hashMap.size();//多少种类 Collection<Integer> list = hashMap.values(); int[] arrCount = new int[count]; int y = 0; for (Integer it : list) { arrCount[y++] = it; } sortArr(arrCount); int x = arr.length - 1; for(int l = arrCount.length - 1;l>=0;l--){ maxR += arrCount[l] * arr[x--]; } x = 0; for(int l = arrCount.length - 1;l>=0;l--){ minR += arrCount[l] * arr[x++]; } System.out.println(minR + " " +maxR); } } } public static void sortArr(int[] arr){ for(int i = 0;i < arr.length;i++){ for(int j = 0;j < arr.length-1-i;j++){ if(arr[j]>arr[j+1]){ int tmp = arr[j]; arr[j] = arr[j+1]; arr[j+1] = tmp; } } } } 笔试的写的有点乱。。。变量也是乱命名的。。。还有,才接触java的我居然没找到java自带的排序方法。。。还自己sb的写了个最简单的冒泡排序用。。。
点赞 1

相关推荐

醉蟀:你是我今年见过的最美牛客女孩
点赞 评论 收藏
分享
牛客网
牛客企业服务