Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- import java.util.ArrayList;
- import java.util.Arrays;
- import java.util.List;
- import java.util.Scanner;
- import java.util.stream.Collectors;
- public class BakingFactory {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- List<Integer> bestBatch = new ArrayList<>();
- int bestTotalQuality = Integer.MIN_VALUE;
- double bestAverageQuality = Integer.MIN_VALUE;
- int bestBatchLength = Integer.MAX_VALUE;
- String line = scanner.nextLine();
- while (!line.equalsIgnoreCase("Bake it!")) {
- //read batch
- List<Integer> qualityList = Arrays.stream(line.split("#"))
- .map(Integer::parseInt).collect(Collectors.toList());
- //take best
- int batchTotalQuality = qualityList.stream().mapToInt(Integer::intValue).sum();
- int batchLength = qualityList.size();
- double batchAverageQuality = (double) batchTotalQuality / batchLength;
- // check bestTotalQuality
- if (batchTotalQuality > bestTotalQuality) {
- //new bestBatch
- bestTotalQuality = batchTotalQuality;
- bestAverageQuality = batchAverageQuality;
- bestBatchLength = batchLength;
- bestBatch = qualityList;
- } else if (batchTotalQuality == bestTotalQuality) {
- //check average quality
- if (batchAverageQuality > bestAverageQuality) {
- //new bestBatch
- bestTotalQuality = batchTotalQuality;
- bestAverageQuality = batchAverageQuality;
- bestBatchLength = batchLength;
- bestBatch = qualityList;
- } else if (batchAverageQuality == bestAverageQuality) {
- ////check the fewest elements (length).
- if (batchLength < bestBatchLength) {
- //new bestBatch
- bestTotalQuality = batchTotalQuality;
- bestAverageQuality = batchAverageQuality;
- bestBatchLength = batchLength;
- bestBatch = qualityList;
- }
- }
- }
- line = scanner.nextLine();
- }
- System.out.println("Best Batch quality: " + bestTotalQuality);
- bestBatch.forEach(e -> System.out.print(e + " "));
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement