Advertisement
at90

**Poisonous Plants

May 22nd, 2018
224
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 0.90 KB | None | 0 0
  1. import java.util.ArrayDeque;
  2. import java.util.Scanner;
  3.  
  4. public class PoisonousPlants {
  5.  
  6.     public static void main(String[] args) {
  7.         Scanner scanner = new Scanner(System.in);
  8.  
  9.         int n = Integer.valueOf(scanner.nextLine());
  10.  
  11.         String[] plants = scanner.nextLine().split(" ");
  12.  
  13.         ArrayDeque<Integer> indexes = new ArrayDeque<>();
  14.         indexes.push(0);
  15.  
  16.         int[] days = new int[n];
  17.  
  18.         for (int i = 0; i < n; i++) {
  19.  
  20.             int maxDays = 0;
  21.  
  22.             while (indexes.size() > 0 && Integer.valueOf(plants[indexes.peek()]) >= Integer.valueOf(plants[i])) {
  23.                 maxDays = Math.max(maxDays, days[indexes.pop()]);
  24.             }
  25.  
  26.             if (indexes.size() > 0) {
  27.                 days[i] = maxDays + 1;
  28.             }
  29.  
  30.             indexes.push(i);
  31.         }
  32.         System.out.println(max(days));
  33.     }
  34.  
  35.     private static int max(int[] days) {
  36.         int max = Integer.MIN_VALUE;
  37.         for (int day : days) {
  38.             if (day > max) {
  39.                 max = day;
  40.             }
  41.         }
  42.         return max;
  43.     }
  44. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement