解题思路:
注意事项:
参考代码:
import java.util.Arrays; import java.util.Comparator; import java.util.Scanner; public class Main { /** * @param args */ public static void main(String[] args) { Scanner scanner=new Scanner(System.in); int m=scanner.nextInt();// for (int i = 0; i <m; i++) { int n=scanner.nextInt(); long[][]arr=new long[n][2]; for (int j = 0; j < n; j++) { arr[j][0]=scanner.nextInt(); arr[j][1]=scanner.nextInt(); } //按照差值的升序排序 Arrays.sort(arr,new Comparator<long[]>(){ @Override public int compare(long[] o1, long[]o2) { // TODO Auto-generated method stub return (o1[1]-o1[0])-(o2[1]-o2[0])>0?1:-1; } }); //积木池 int num=0; boolean flag=true; for (int j = 0; j <n; j++) { //当前小朋友已有积木的数量+积木池的数量>需要的数量 if (arr[j][0]+num>=arr[j][1]) { num+=arr[j][0]; }else { flag=false; break; } } if (flag) { System.out.println("YES"); }else { System.out.println("NO"); } } } }
0.0分
0 人评分