美团笔试,为啥我第二题调到死都是18%,实在搞不懂哪里错
import java.util.*;
public class Main {
public static final double P=3.141592697;
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
String num=sc.nextLine();
String[] cover=sc.nextLine().split("\\s+");
Integer[]or=new Integer[cover.length];
for(int i=0;i<cover.length;i++){
or[i]=Integer.parseInt(cover[i]);
}
Arrays.sort(or,new MaxComparator());
double[]res=new double[cover.length];
for(int i=0;i<or.length;i++){
if(i==or.length-1)
res[i]=P*or[i]*or[i];
else
res[i]=P*or[i]*or[i]-P*or[i+1]*or[i+1];
}
double sum=0;
for(int i=0;i<res.length;i+=2)
sum+=res[i];
sum=(double)Math.round(sum*100000)/100000;
System.out.println(sum);
}
public static class MaxComparator implements Comparator<Integer>{
public int compare(Integer o1,Integer o2){
return o2-o1;
}
}
}
#美团#