Advertisement
Guest User

DatingApp

a guest
Jan 12th, 2020
788
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 4.09 KB | None | 0 0
  1. import java.util.ArrayDeque;
  2. import java.util.Scanner;
  3.  
  4. public class DatingAppMain {
  5.     public static void main(String[] args) {
  6.         Scanner scanner = new Scanner(System.in);
  7.  
  8.         String[] malesInput = scanner.nextLine().split("\\s+");
  9.         String[] femalesInput = scanner.nextLine().split("\\s+");
  10.  
  11.         ArrayDeque<Integer> maleQueue = new ArrayDeque<>();
  12.         ArrayDeque<Integer> femaleStack = new ArrayDeque<>();
  13.  
  14.         int counter = 0;
  15.  
  16.         //fulfill queue of males
  17.         for (int i = malesInput.length - 1; i >= 0; i--) {
  18.             maleQueue.add(Integer.parseInt(malesInput[i])); //add last
  19.         }
  20.  
  21.         //fulfill stack of females
  22.         for (int i = femalesInput.length - 1; i >= 0; i--) {
  23.             femaleStack.push(Integer.parseInt(femalesInput[i])); //add first
  24.         }
  25.  
  26.         while (maleQueue.size() > 0 && femaleStack.size() > 0) {
  27.  
  28.             // TODO PEEK VALUES
  29.             int male = maleQueue.peek();
  30.             int female = femaleStack.peek();
  31.  
  32.             // TODO SPECIAL CASE
  33.  
  34.             if (male > 0 && female > 0) {
  35.                 if (male % 25 == 0 || female % 25 == 0) {
  36.  
  37.                     if (male % 25 == 0) {
  38.                         if (maleQueue.size() > 1) {
  39.                             maleQueue.remove();
  40.                             maleQueue.remove();
  41.                         } else {
  42.                             maleQueue.remove();
  43.                         }
  44.                     }
  45.  
  46.                     if (female % 25 == 0) {
  47.                         if (femaleStack.size() > 1) {
  48.                             femaleStack.pop();
  49.                             femaleStack.pop();
  50.                         } else {
  51.                             femaleStack.pop();
  52.                         }
  53.                     }
  54.                     continue;
  55.                 }
  56.             }
  57.             // TODO CHECK VALUE <=0
  58.             if (male <= 0 || female <= 0) {
  59.  
  60.                 if (male <= 0) {
  61.                     maleQueue.remove(); //removes first
  62.                 }
  63.                 if (female <= 0) {
  64.                     femaleStack.pop(); //removes first
  65.                 }
  66.                 continue;
  67.             }
  68.  
  69.             // TODO CHECK MATCHING
  70.  
  71.             if (male == female) {
  72.                 counter++;
  73.                 maleQueue.remove();
  74.                 femaleStack.pop();
  75.             } else {
  76.  
  77.                 // remove female
  78.                 femaleStack.pop();
  79.  
  80.                 // minus 2 man
  81.  
  82.                 male -= 2;
  83.                 maleQueue.remove();
  84.  
  85.                 ArrayDeque<Integer> setQueue = new ArrayDeque<>();
  86.                 setQueue.add(male);
  87.                 for (int i = 0; i < maleQueue.size(); i++) {
  88.                     int current = maleQueue.remove();
  89.                     setQueue.add(current);
  90.                     i--;
  91.                 }
  92.                 maleQueue = setQueue;
  93.  
  94.  
  95.             }
  96.  
  97.  
  98.         }
  99.  
  100.         System.out.println("Matches: " + counter);
  101.  
  102.         if (maleQueue.size() > 0) {
  103.             System.out.print("Males left: ");
  104.  
  105.             for (int i = 0; i < maleQueue.size(); i++) {
  106.                 if (i == maleQueue.size() - 1) {
  107.                     System.out.println(maleQueue.remove());
  108.                 } else {
  109.                     System.out.print(maleQueue.remove() + ", ");
  110.                     i--;
  111.                 }
  112.             }
  113.             System.out.println("Females left: none");
  114.  
  115.         } else if (maleQueue.isEmpty() && femaleStack.isEmpty()) {
  116.             System.out.println("Males left: none");
  117.             System.out.println("Females left: none");
  118.         } else if (maleQueue.isEmpty()) {
  119.             System.out.println("Males left: none");
  120.  
  121.  
  122.             System.out.print("Females left: ");
  123.  
  124.             for (int i = 0; i < femaleStack.size(); i++) {
  125.                 if (i == femaleStack.size() - 1) {
  126.                     System.out.println(femaleStack.pop());
  127.                 } else {
  128.                     System.out.print(femaleStack.pop() + ", ");
  129.                     i--;
  130.                 }
  131.             }
  132.         }
  133.     }
  134. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement