流程图求解代码staticclassGoods{longw;longv;longc;Goods(longw,longv,longc){this.ww;this.vv;this.cc;}}publicstaticvoidmain(String[]args)throwsIOException{BufferedReaderbrnewBufferedReader(newInputStreamReader(System.in));PrintWriteroutnewPrintWriter(newOutputStreamWriter(System.out));intnInteger.parseInt(br.readLine().trim());Goods[]goodsnewGoods[n];longtotal0;for(inti0;in;i){String[]strbr.readLine().trim().split(\\s);longwLong.parseLong(str[0]);longvLong.parseLong(str[1]);longcLong.parseLong(str[2]);goods[i]newGoods(w,v,c);totalv;}Arrays.sort(goods,(x,y)-Long.compare(x.c*y.w,y.c*x.w));// 总实际体积 初始体积总和 - sumCW因此最大化sumCW是实现最小体积的关键longsumCW0;// 记录当前遍历商品的「上方总重量」初始为0第一个商品在最顶部上方无重量longupperWeight0;// 按从上到下的堆叠顺序遍历排序后的商品for(Goodsg:goods){// 计算当前商品的压缩贡献值c_i × 上方总重量W_i// 这里必须先计算贡献再更新上方重量避免把当前商品算入自己的上方sumCWg.c*upperWeight;// 更新上方总重量当前商品会成为后续商品的上方重量需累加其重量upperWeightg.w;}longrestotal-sumCW;out.println(res);out.flush();out.close();br.close();}