华为4.13软开笔试
#华为笔试#
100分:硬件最佳分配策略
200分:工费调度方案
300分:分糖果
第一题做了一个多小时95%
剩下两题来不及了,第二题0,第三题输出-5%
求第二题第三题答案
下面第一题代码
package exam.huawei; import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner in = new Scanner(System.in); int m = in.nextInt(); String ss = in.nextLine(); int[][] fu = new int[m][5]; for (int i = 0; i < m; i++) { String s = in.nextLine(); String[] str = s.split(","); int[] num = new int[str.length]; for (int k = 0; k < str.length; k++) { num[k] = Integer.parseInt(str[k]); } fu[i][0] = num[0]; fu[i][1] = num[1]; fu[i][2] = num[2]; fu[i][3] = num[3]; fu[i][4] = num[4]; } int[] xu = new int[6]; for (int i = 0; i < 6; i++) { xu[i] = in.nextInt(); } int[][] use1 = new int[m][5]; int j = 0; for (int i = 0; i < m; i++) { if (fu[i][1] >= xu[2] && fu[i][2] >= xu[3] && (fu[i][3] == xu[4] || xu[4] == 9) && (fu[i][4] == xu[5] || xu[5] == 2)) { for (int k = 0; k < 5; k++) { use1[j][k] = fu[i][k]; } j++; } } int[][] use = new int[j][5]; for (int i = 0; i < j; i++) { for (int k = 0; k < 5; k++) { use[i][k] = use1[i][k]; } } if (xu[1] == 1) { Arrays.sort( use, (o1, o2) -> { if (o1[1] == o2[1]) { return o1[2] - o2[2]; } return o1[1] - o2[1]; }); if (use.length > xu[0]) { int[][] use11 = new int[xu[0]][5]; for (int i = 0; i < xu[0]; i++) { for (int k = 0; k < 5; k++) { use11[i][k] = use[i][k]; } } Arrays.sort( use11, Comparator.comparingInt(o -> o[0])); System.out.print(xu[0]); for (int i = 0; i < xu[0]; i++) { System.out.print(" " + use11[i][0]); } } else { Arrays.sort( use, Comparator.comparingInt(o -> o[0])); System.out.print(use.length); for (int i = 0; i < use.length; i++) { System.out.print(" " + use[i][0]); } } } else { Arrays.sort( use, (o1, o2) -> { if (o1[2] == o2[2]) { return o1[1] - o2[1]; } return o1[2] - o2[2]; }); if (use.length > xu[0]) { int[][] use22 = new int[xu[0]][5]; for (int i = 0; i < xu[0]; i++) { for (int k = 0; k < 5; k++) { use22[i][k] = use[i][k]; } } Arrays.sort( use22, Comparator.comparingInt(o -> o[0])); System.out.print(xu[0]); for (int i = 0; i < xu[0]; i++) { System.out.print(" " + use22[i][0]); } } else { Arrays.sort( use, Comparator.comparingInt(o -> o[0])); System.out.print(use.length); for (int i = 0; i < use.length; i++) { System.out.print(" " + use[i][0]); } } } } }