Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package socks;
- import java.util.*;
- public class Main {
- public static void main(String[] args) {
- Scanner scanner = new Scanner(System.in);
- ArrayDeque<Integer> leftSocks = new ArrayDeque<>();
- ArrayDeque<Integer> rightSocks = new ArrayDeque<>();
- Arrays.stream(scanner.nextLine().split(" "))
- .mapToInt(Integer::parseInt)
- .forEach(leftSocks::push);//така четем и добавяме в стека
- Arrays.stream(scanner.nextLine().split(" "))
- .mapToInt(Integer::parseInt)
- .forEach(rightSocks::offer);//така четем и добавяме в опашка
- List<Integer> pairs = new ArrayList<>();//правим си списък за чорапите в чифт
- //пускаме си един цикъл докато имам елементи и в двете колекции напр. while и извършваме дадените действия:
- while (leftSocks.size() > 0 && rightSocks.size() > 0) {
- int leftSock = leftSocks.peek();//създаваме си променливи за да можем да сравняваме елементите от двете колекции
- int rightSock = rightSocks.peek();
- if (leftSock > rightSock) {
- leftSocks.pop();//защото горе имаме peek а по усл трябва да ги махнем щом намерим чифт
- rightSocks.poll();
- pairs.add(leftSock + rightSock);
- } else if (rightSock > leftSock) {
- leftSocks.pop();
- } else {
- rightSocks.poll();
- leftSocks.pop();//за да върнрм в стека стойността+1
- leftSocks.push(leftSock + 1);
- }
- }
- //след като сме намерили всички чифтове търсим максималната стойност на pair
- int maxPair = pairs.stream().max(Comparator.comparingInt(t -> t)).get();
- System.out.println(maxPair);
- pairs.forEach(p -> System.out.print(p + " "));
- System.out.println();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement