Advertisement
Guest User

Untitled

a guest
Aug 28th, 2016
310
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 2.69 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.Collection;
  5. import java.util.LinkedList;
  6. import java.util.Stack;
  7. import java.util.stream.Collectors;
  8.  
  9. public class SecondNature {
  10.  
  11.     public static void main(String[] args) throws IOException {
  12.  
  13.         BufferedReader buffReader = new BufferedReader(new InputStreamReader(System.in));
  14.  
  15.         String[] flowersArray = buffReader.readLine().split("\\s+");
  16.         String[] bucketsArray = buffReader.readLine().split("\\s+");
  17.  
  18.         LinkedList<Integer> flowers = new LinkedList<>();
  19.         Stack<Integer> buckets = new Stack<>();
  20.         addToCollection(flowersArray, flowers);
  21.         addToCollection(bucketsArray,buckets);
  22.  
  23.         LinkedList<Integer> secondNatureFlowers = new LinkedList<>();
  24.  
  25.         while (!flowers.isEmpty() && !buckets.isEmpty()) {
  26.             int currentFlower = flowers.peek();
  27.             int currentBucket = buckets.peek();
  28.  
  29.             int restOfBucket = currentBucket - currentFlower;
  30.  
  31.             if (restOfBucket == 0) {
  32.                 secondNatureFlowers.add(currentFlower);
  33.                 buckets.pop();
  34.             }
  35.             if (restOfBucket > 0 && buckets.size() > 1) {
  36.                 buckets.pop();
  37.                 int nextBucket= buckets.pop() + restOfBucket;
  38.                 buckets.push(nextBucket);
  39.             } else if (restOfBucket > 0 && buckets.size() == 1 && !flowers.isEmpty()) {
  40.                 buckets.pop();
  41.                 buckets.push(restOfBucket);
  42.             }
  43.             flowers.poll();
  44.             if (restOfBucket < 0) {
  45.                 currentFlower -= currentBucket;
  46.                 buckets.pop();
  47.                 flowers.addFirst(currentFlower);
  48.             }
  49.  
  50.         }
  51.  
  52.         printResult(flowers, buckets, secondNatureFlowers);
  53.     }
  54.  
  55.     private static void printResult(LinkedList<Integer> flowers, Stack<Integer> buckets, LinkedList<Integer>
  56.             secondNatureFlowers) {
  57.         if (flowers.size() == 0) {
  58.             while (!buckets.isEmpty()) {
  59.                 System.out.print(buckets.pop() + " ");
  60.             }
  61.         } else {
  62.             for (Integer flower : flowers) {
  63.                 System.out.printf("%d ", flower);
  64.             }
  65.         }
  66.         System.out.println();
  67.         System.out.println(secondNatureFlowers.size() > 0 ? String.join(" ", secondNatureFlowers.stream()
  68.                 .map(String::valueOf)
  69.                 .collect(Collectors.toList())) : "None");
  70.     }
  71.  
  72.     private static void addToCollection(String[] array, Collection<Integer> collection) {
  73.         for (String item: array) {
  74.             collection.add(Integer.valueOf(item));
  75.         }
  76.     }
  77. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement