不明白测试提交不给通过,觉得思路是正确的?????????
由题意可得,需要前一个大臣的左右手之积小于后面各个大臣的左右手之积
我在此处使用了 冒泡排序 -》 对大臣进行排序
然后将 这样排序大臣中获得最多的金币数 求出来
import java.util.Scanner;
public class Main {
public void getMax() {
int n;
Scanner in=new Scanner(System.in);
n=in.nextInt();
int[] corn=new int[n];
int[] left=new int[n+1];
int[] right=new int[n+1];
for(int i=0;i<n+1;i++) {
left[i]=in.nextInt();
right[i]=in.nextInt();
}
for(int i=1;i<n+1;i++) {
for(int j=i+1;j<n+1;j++) {
int mul1=left[i]*right[i];
int mul2=left[j]*right[j];
if(mul1>mul2){
swap(left,i,j);
swap(right,i,j);
}
}
}
for(int i=0;i<n+1;i++) {
System.out.println(left[i]);
System.out.println(right[i]);
}
int a=left[0];
double max=-1e-7;
for(int i=1;i<n+1;i++) {
corn[i-1]=a/right[i];
if(corn[i-1]>max) {
max=corn[i-1];
}
a=corn[i-1]*right[i]*left[i];
}
System.out.printf("%d",max);
}
private void swap(int[] left, int i, int j) {
int temp;
temp=left[i];
left[i]=left[j];
left[j]=temp;
}
public static void main(String[] args) {
new Main().getMax();
}
}