| ||||||||||
Online Judge | Problem Set | Authors | Online Contests | User | ||||||
---|---|---|---|---|---|---|---|---|---|---|
Web Board Home Page F.A.Qs Statistical Charts | Current Contest Past Contests Scheduled Contests Award Contest |
要疯了,看了两个小时就是找不到错误2833题目,java的解法,看不懂自己哪里写错了,求救 import java.util.*; import java.text.DecimalFormat; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while (sc.hasNext()){ int n_1 = sc.nextInt(); int log_1 = n_1; int n_2 = sc.nextInt(); int log_2 = n_2; int n = sc.nextInt(); if (n_1 == 0 || n_2 == 0 || n == 0){ sc.close(); break; } PriorityQueue<Long> queue_1 = new PriorityQueue<Long>(15); // 最小堆 PriorityQueue<Long> queue_2 = new PriorityQueue<Long>(15, new Comparator<Long>() { @Override public int compare(Long o1, Long o2) { return (int)(o2 - o1); } }); // 最大堆 double sum = 0; int count = 0; while (count++ < n){ long num = sc.nextLong(); sum += num; if (queue_1.size() <= 10 || queue_1.peek() < num){ queue_1.add(num); } if (queue_2.size() <= 10 || queue_2.poll() > num){ queue_2.add(num); } if (queue_1.size() > 10){ queue_1.poll(); } if (queue_2.size() > 10){ queue_2.poll(); } } while(n_1-- > 0){ sum -= queue_2.poll(); } while(n_2-- > 0){ sum -= queue_1.poll(); } DecimalFormat df1 = new DecimalFormat(); String style = "0.000000"; df1.applyPattern(style); System.out.println(df1.format(sum / (n - log_1 - log_2))); } } } Followed by: Post your reply here: |
All Rights Reserved 2003-2013 Ying Fuchen,Xu Pengcheng,Xie Di
Any problem, Please Contact Administrator