美团在吃喝玩乐等很多方面都给大家提供了便利。最近又增加了一项新业务:小象生鲜。这是新零售超市,你既可以在线下超市门店选购生鲜食品,
也可以在手机App上下单,最快30分钟就配送到家。
新店开张免不了大优惠。我们要在小象生鲜超市里采购n个物品,每个物品价格为ai,有一些物品可以选择八折优惠(称为特价优惠)。
有m种满减优惠方式,满减优惠方式只有在所有物品都不选择特价优惠时才能使用,且最多只可以选择最多一款。
每种满减优惠描述为(bi,ci),即满bi减ci(当消费>=bi时优惠ci)。
求要买齐这n个物品(必须一单买齐),至少需要多少钱(保留两位小数)。
输入描述:
第一行,两个整数n,m。
接下来n行,每行一个正整数ai,以及一个0/1表示是否可以选择特价优惠(1表示可以)。
接下来m行,每行两个正整数bi,ci,描述一款满减优惠。1 <= n,m <=10
1 <= ai <= 100
1 <= ci < bi <= 1000输出描述:
一行一个实数,表示至少需要消耗的钱数(保留恰好两位小数)。示例1
输入
2 1
6 1
10 1
12 2
输出
12.80示例2
输入
2 2
6 1
10 1
5 1
16 6
输出
10.00代码:
import java.text.DecimalFormat;
import java.util.Scanner;public class Test1 { // 输入值转换成二维数据
public static double[][] P2(int n) {
double[][] arrays = new double[n][2];
Scanner s = new Scanner(System.in);
for (int i = 0; i < n; i++) {
for (int j = 0; j < 2; j++) { arrays[i][j] = s.nextDouble(); }
}
return arrays;
} //获取最优惠价格方法
public static double Compares(double[][] A,double[][] B) {
  double TotalPrice=0; 
  double YouhuiTotalPrice=0;
  double ManJianTotalPrice=0;
  double tmp=0;
  
  //计算优惠后总价格
  for (int i = 0; i < A.length; i++) {
  TotalPrice+=A[i][0];
if (A[i][1]==1) {
A[i][0]=A[i][0]*0.8;
}
YouhuiTotalPrice+=A[i][0];
}   
  
  
  //计算满减后总价格
  if (B.length>0&&B.length<=1) {   //m=1的情况

  if (TotalPrice>=B[0][0]) {    
  ManJianTotalPrice=TotalPrice-B[0][1];
  
  }
//   else {
//   return 0;
//   }
   }
  else{    //m>1时的情况
  
  
  //满减后的价格
for (int j =0; j < B.length; j++) {
double  sum=TotalPrice;
if (sum>=B[j][0]) { B[j][0]=sum-B[j][1];

}

}
for (int k = 1; k < B.length; k++) {
 tmp=B[0][0];
if (B[k][0]<=tmp) {
tmp=B[k][0];
}

}

ManJianTotalPrice=tmp;
}
  
  if (YouhuiTotalPrice<=ManJianTotalPrice) {

  return YouhuiTotalPrice;
} else {

return ManJianTotalPrice;
}
  
  }
public static void main(String[] args) { Scanner sc = new Scanner(System.in);
int n = sc.nextInt();
int m = sc.nextInt(); double[][] YouhuiArray = P2(n);
double[][] ManJianArray = P2(m);
double price=Compares(YouhuiArray, ManJianArray);
        DecimalFormat df = new DecimalFormat("#.00");
        System.out.println(df.format(price));
}
}