LoraOrliGeo

MixedUpLists_Lists_MoreEx

Apr 8th, 2019
221
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.72 KB | None | 0 0
  1. package feb20_Lists_MoreExercises;
  2.  
  3. import java.util.ArrayList;
  4. import java.util.Arrays;
  5. import java.util.List;
  6. import java.util.Scanner;
  7. import java.util.stream.Collectors;
  8.  
  9. public class MixedUpLists {
  10.     public static void main(String[] args) {
  11.         @SuppressWarnings("resource")
  12.  
  13.         Scanner sc = new Scanner(System.in);
  14.  
  15.         List<Integer> first = Arrays.stream(sc.nextLine().split("\\s+")).map(Integer::parseInt)
  16.                 .collect(Collectors.toList());
  17.  
  18.         List<Integer> second = Arrays.stream(sc.nextLine().split("\\s+")).map(Integer::parseInt)
  19.                 .collect(Collectors.toList());
  20.  
  21.         int shorter = Math.min(first.size(), second.size());
  22.  
  23.         List<Integer> mix = new ArrayList<>();
  24.  
  25.         for (int i = 0; i < shorter; i++) {
  26.             mix.add(first.get(i));
  27.             mix.add(second.get(second.size() - 1 - i));
  28.         }
  29.  
  30.         int lowerBound = 0;
  31.         int upperBound = 0;
  32.  
  33.         if (first.size() < second.size()) {
  34.             if (second.get(0) < second.get(1)) {
  35.                 lowerBound = second.get(0);
  36.                 upperBound = second.get(1);
  37.             } else {
  38.                 lowerBound = second.get(1);
  39.                 upperBound = second.get(0);
  40.             }
  41.         } else if (second.size() < first.size()) {
  42.             if (first.get(first.size() - 1) < first.get(first.size() - 2)) {
  43.                 lowerBound = first.get(first.size() - 1);
  44.                 upperBound = first.get(first.size() - 2);
  45.             } else {
  46.                 lowerBound = first.get(first.size() - 2);
  47.                 upperBound = first.get(first.size() - 1);
  48.             }
  49.         }
  50.  
  51.         List<Integer> result = new ArrayList<>();
  52.  
  53.         for (int i = 0; i < mix.size(); i++) {
  54.             if (mix.get(i) > lowerBound && mix.get(i) < upperBound) {
  55.                 result.add(mix.get(i));
  56.             }
  57.         }
  58.  
  59.         result = result.stream().sorted().collect(Collectors.toList());
  60.  
  61.         System.out.println(result.toString().replaceAll("\\[|,|\\]", ""));
  62.  
  63.     }
  64. }
Advertisement
Add Comment
Please, Sign In to add comment