MariaIvanovaMihova

Dating App

Jun 17th, 2021
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 3.94 KB | None | 0 0
  1. import java.util.*;
  2. import java.util.stream.Collector;
  3. import java.util.stream.Collectors;
  4.  
  5. public class Main {
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.  
  10.         ArrayDeque<Integer> males = new ArrayDeque<>();
  11.         Arrays.stream(scanner.nextLine().split("\\s+"))
  12.                 .mapToInt(Integer::parseInt)
  13.                 .forEach(males::push);
  14.  
  15.         ArrayDeque<Integer> females = (ArrayDeque<Integer>) Arrays.stream(scanner.nextLine().split("\\s+"))
  16.                 .mapToInt(Integer::parseInt)
  17.                 .boxed()
  18.                 .collect(Collectors.toCollection(ArrayDeque<Integer> ::new));
  19.  
  20.  
  21.         int matches = 0;
  22.  
  23.         while (!females.isEmpty() && !males.isEmpty()){
  24.             checkZerroValueFemales(females);
  25.             checkZerroValueMales(males);
  26.             if(females.isEmpty() || males.isEmpty()) {
  27.                 break;
  28.             }
  29.             divisibleBy25F(females);
  30.             divisibleBy25M(males);
  31.             if(females.isEmpty() || males.isEmpty()) {
  32.                 break;
  33.             }
  34.                 int woman = females.peek();
  35.                 int man = males.peek();
  36.                 if (woman == man) {
  37.                     matches++;
  38.                     females.poll();
  39.                     males.pop();
  40.                 } else {
  41.                     females.poll();
  42.                     males.push(males.pop() - 2);
  43.                 }
  44.  
  45.         }
  46.         System.out.println("Matches: " + matches);
  47.         if(males.isEmpty()){
  48.             System.out.println("Males left: none");
  49.         }else{
  50.             System.out.print("Males left: ");
  51.            printStack(males);
  52.  
  53.         }
  54.         if(females.isEmpty()){
  55.             System.out.println("Females left: none");
  56.         }else{
  57.             System.out.print("Females left: ");
  58.             printQueue(females);
  59.         }
  60.     }
  61.  
  62.     private static void printQueue(ArrayDeque<Integer> females) {
  63.         StringBuilder fill = new StringBuilder();
  64.         while (!females.isEmpty()){
  65.             if(females.size() == 1){
  66.                 fill.append(females.poll());
  67.             }else {
  68.                 fill.append(String.valueOf(females.poll())).append(", ");
  69.             }
  70.         }
  71.         System.out.println(fill.toString());
  72.     }
  73.  
  74.     private static void printStack(ArrayDeque<Integer> males) {
  75.         StringBuilder fill = new StringBuilder();
  76.        while (!males.isEmpty()){
  77.            if(males.size()==1){
  78.                fill.append(males.pop());
  79.            }else {
  80.                fill.append(String.valueOf(males.pop())).append(", ");
  81.            }
  82.         }
  83.         System.out.println(fill.toString());
  84.     }
  85.  
  86.     private static void divisibleBy25M(ArrayDeque<Integer> males) {
  87.         int man = males.peek();
  88.         if(man % 25 == 0){
  89.             males.pop();
  90.             if(!males.isEmpty()) {
  91.                 males.pop();
  92.             }
  93.             if(!males.isEmpty()) {
  94.                 divisibleBy25M(males);
  95.             }
  96.         }
  97.     }
  98.  
  99.     private static void divisibleBy25F(ArrayDeque<Integer> females) {
  100.         int woman = females.peek();
  101.         if(woman % 25 == 0){
  102.             females.poll();
  103.             if(!females.isEmpty()) {
  104.                 females.poll();
  105.             }
  106.             if(!females.isEmpty()) {
  107.                 divisibleBy25F(females);
  108.             }
  109.         }
  110.     }
  111.  
  112.     private static void checkZerroValueMales(ArrayDeque<Integer> males) {
  113.         int man = males.peek();
  114.         if(man <= 0){
  115.             males.pop();
  116.             if(!males.isEmpty()) {
  117.                 checkZerroValueMales(males);
  118.             }
  119.         }
  120.     }
  121.  
  122.     private static void checkZerroValueFemales(ArrayDeque<Integer> females) {
  123.         int woman = females.peek();
  124.         if(woman <= 0){
  125.             females.poll();
  126.             if(!females.isEmpty()) {
  127.                 checkZerroValueFemales(females);
  128.             }
  129.         }
  130.     }
  131.  
  132.  
  133. }
Advertisement
Add Comment
Please, Sign In to add comment