import java.util.Scanner;public class Test3 {static int mjq;static int dzq;static int wmkq;static class Group {int price;// 打折后價格int num;// 優惠券使用熟練}public static void main(String[] args) {Scanner scanner = new Scanner(System.in);String input = scanner.nextLine();mjq = Integer.parseInt(input.split(" ")[0]);// 滿減券數量 100減10 200減20// 300減30dzq = Integer.parseInt(input.split(" ")[1]); // 打折券數量 92折 向下取整wmkq = Integer.parseInt(input.split(" ")[2]); // 無門檻券 減5元 價格>=0int nums = Integer.parseInt(scanner.nextLine());for (int i = 0; i < nums; i++) {int price = Integer.parseInt(scanner.nextLine());Group g = getMinPrice(price);System.out.println(g.price + " " + g.num);}}public static Group getMinPrice(int price) {String ways[] = {"MD”, “MY", "DM", "DY", "YM", "YD"};Group group = new Group();group.price = price;group.num = dzq + mjq + wmkq;for (String way : ways) {Group g = count(way, price);if (g.price < group.price) {group.price = g.price;group.num = g.num;} else if (g.price == group.price) {if (g.num < group.num) {group.num = g.num;}}}return group;}public static Group count(String way, int price) {
// Map<Integer, Integer> map = new HashMap<Integer, Integer>(); // 價格和數量Group group = new Group();int mjCount = 0;// 滿減券使用數量int wmqCount = 0;// 優惠券使用數量switch (way) {case "MD":// 先滿減 再打折while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;// System.out.println(price+“_”+num);price -= num;mjCount++;}// System.out.println(“滿減后的價格” + price);price = (int) (price * 0.92);// System.out.println(“打折后的價格” + price);group.price = price;group.num = mjCount + 1;break;case "MY":// 先滿減 無門檻券while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;// System.out.println(price+“_”+num);price -= num;mjCount++;}// System.out.println(“滿減后的價格” + price);while (price > 0 && wmqCount < wmkq) {price -= 5;price = price < 0 ? 0 : price;wmqCount++;}group.price = price;group.num = mjCount + wmqCount;// System.out.println(“無門檻后的價格” + price);break;case "DM":// 先打折再滿減price = (int) (price * 0.92);// 先滿減 再打折// System.out.println(“打折后的價格” + price);while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;// System.out.println(price+“_”+num);price -= num;mjCount++;}// System.out.println(“滿減后的價格” + price);group.price = price;group.num = mjCount + 1;break;case "DY":// 先打折 再使用無門檻券price = (int) (price * 0.92);// System.out.println(“打折后的價格” + price);while (price > 0 && wmqCount < wmkq) {price -= 5;price = price < 0 ? 0 : price;wmqCount++;}// System.out.println(“無門檻券后的價格” + price);group.price = price;group.num = wmqCount + 1;break;case "YM":// 先使用無門檻券 再滿減while (price > 0 && wmqCount < wmkq) {price -= 5;wmqCount++;price = price < 0 ? 0 : price;}// System.out.println(“無門檻券后的價格” + price);while (mjCount < mjq && price >= 100) {int num = (int) (price / 100) * 10;price -= num;mjCount++;}// System.out.println(“滿減后的價格” + price);group.price = price;group.num = mjCount + wmqCount;break;case "YD":// 先使用 無門檻券 再使用打折while (price > 0 && wmqCount < wmkq) {price -= 5;wmqCount++;price = price < 0 ? 0 : price;}// System.out.println(“無門檻券后的價格” + price);price = (int) (price * 0.92);// System.out.println(“打折后的價格” + price);group.price = price;}return group;}
}