Advertisement
Guest User

Untitled

a guest
Oct 31st, 2018
269
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.38 KB | None | 0 0
  1. import java.util.ArrayList;
  2. import java.util.Arrays;
  3. import java.util.List;
  4. import java.util.Scanner;
  5. import java.util.stream.Collectors;
  6.  
  7. public class BakingFactory {
  8.     public static void main(String[] args) {
  9.         Scanner scanner = new Scanner(System.in);
  10.         List<Integer> bestBatch = new ArrayList<>();
  11.         int bestTotalQuality = Integer.MIN_VALUE;
  12.         double bestAverageQuality = Integer.MIN_VALUE;
  13.         int bestBatchLength = Integer.MAX_VALUE;
  14.  
  15.         String line = scanner.nextLine();
  16.         while (!line.equalsIgnoreCase("Bake it!")) {
  17.             //read batch
  18.             List<Integer> qualityList = Arrays.stream(line.split("#"))
  19.                     .map(Integer::parseInt).collect(Collectors.toList());
  20.  
  21.             //take best
  22.             int batchTotalQuality = qualityList.stream().mapToInt(Integer::intValue).sum();
  23.             int batchLength = qualityList.size();
  24.             double batchAverageQuality = (double) batchTotalQuality / batchLength;
  25.  
  26. // check bestTotalQuality
  27.             if (batchTotalQuality > bestTotalQuality) {
  28.                 //new bestBatch
  29.                 bestTotalQuality = batchTotalQuality;
  30.                 bestAverageQuality = batchAverageQuality;
  31.                 bestBatchLength = batchLength;
  32.                 bestBatch = qualityList;
  33.             } else if (batchTotalQuality == bestTotalQuality) {
  34. //check average quality
  35.                 if (batchAverageQuality > bestAverageQuality) {
  36.                     //new bestBatch
  37.                     bestTotalQuality = batchTotalQuality;
  38.                     bestAverageQuality = batchAverageQuality;
  39.                     bestBatchLength = batchLength;
  40.                     bestBatch = qualityList;
  41.                 } else if (batchAverageQuality == bestAverageQuality) {
  42. ////check the fewest elements (length).
  43.                     if (batchLength < bestBatchLength) {
  44.                         //new bestBatch
  45.                         bestTotalQuality = batchTotalQuality;
  46.                         bestAverageQuality = batchAverageQuality;
  47.                         bestBatchLength = batchLength;
  48.                         bestBatch = qualityList;
  49.                     }
  50.                 }
  51.             }
  52.             line = scanner.nextLine();
  53.         }
  54.         System.out.println("Best Batch quality: " + bestTotalQuality);
  55.         bestBatch.forEach(e -> System.out.print(e + " "));
  56.     }
  57. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement