paranid5

4 11.11

Nov 11th, 2021 (edited)
639
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Java 1.61 KB | None | 0 0
  1. import java.io.BufferedReader;
  2. import java.io.IOException;
  3. import java.io.InputStreamReader;
  4. import java.util.ArrayList;
  5. import java.util.Arrays;
  6. import java.util.Comparator;
  7. import java.util.Optional;
  8.  
  9. import static java.lang.System.out;
  10.  
  11. public final class Main {
  12.  
  13.     private static final int SIZE = 1000;
  14.  
  15.     public static final void main(final String[] args) throws IOException {
  16.         try (final var reader = new BufferedReader(new InputStreamReader(System.in))) {
  17.             final var nums = new double[SIZE];
  18.  
  19.             for (var i = 0; i < SIZE; i++)
  20.                 nums[i] = Double.parseDouble(reader.readLine().trim().replace(",", "."));
  21.  
  22.             var ind = 0;
  23.             final var filter = new ArrayList<ArrayList<Double>>(1);
  24.  
  25.             while (ind < nums.length) {
  26.                 final var list = new ArrayList<Double>(1);
  27.                 list.add(nums[ind++]);
  28.  
  29.                 while (ind < nums.length && Math.abs(nums[ind - 1] - nums[ind]) <= 2.0)
  30.                     list.add(nums[ind++]);
  31.  
  32.                 filter.add(list);
  33.             }
  34.  
  35.             out.println(
  36.                     filter.stream().map(list -> {
  37.                         final var size = list.size();
  38.                         final var dp = new double[size]; dp[0] = list.get(0);
  39.  
  40.                         for (var i = 1; i < size; i++)
  41.                             dp[i] = Math.max(list.get(i), list.get(i) + dp[i - 1]);
  42.  
  43.                         return Arrays.stream(dp).max().getAsDouble();
  44.                     }).max(Comparator.comparingDouble(Double::doubleValue)).get()
  45.             );
  46.         }
  47.     }
  48. }
Add Comment
Please, Sign In to add comment