UVA - 11236 - Grocery store 

This article will explain my thought process to solve a problem called Grocery Store (PDF) from UVA Online Judge. Read the original problem statement before reading this article.

Keywords: Brute Force, Precomputation

Problem Summary 

Given:

  1. Rules of purchase:

    1. Total items equals to 4.

    2. Sum of the prices is equals to the product of the prices.

    3. Price is greater than 0,01.

    4. Sum of the prices is lesser or equals to 20,00.

We want to:

  1. Find every possible lexicographically increasing purchases.

Glossary 

  1. Brute Force — A search strategy that systematically explores every option until the answer is discovered.

  2. Precomputation — A process of pre-calculating and storing the results of certain computations or data structures in advance, in order to speed up the execution time of a program.

Observation 

There is no input given for this problem and this is an indication that we might be able to apply precomputation strategy to produce the output. With precomputation in mind, we have the option to use a less optimal algorithm such as brute force to find every possible purchases ahead of time.

To discover every possible lexicographically increasing purchases using Brute Force strategy, we could try every possible prices for each items from 0,01 until 20,00. This will produce around 2000^4 possible prices, which can be reduce deven further by skipping possibilities where the sum of the products has exceed 20,00.

After the brute force is finished, we will have the list of every possible purchases. There is exactly 949 valid purchases, and since the result is quiet small, we can use precomputation strategy to store this result in the code.

Algorithm 

To implement the brute force, we could use a nested loop with 4 levels that represent each price of the items. After we ran the brute force once, the result can be stored in a string to skip the brute force step on later run.

The time complexity of this solution is O({total answers}) or O(10^3).

Implementation 

import java.io.BufferedOutputStream; import java.io.PrintWriter; import java.util.Arrays; import java.util.LinkedList; import java.util.List; /** * 11236 - Grocery store * Time limit: 3.000 seconds * https://onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&category=24&page=show_problem&problem=2177 */ public class Main { public static void main(final String... args) { final PrintWriter out = new PrintWriter(new BufferedOutputStream(System.out)); final Process process = new Process(); final Output output = process.process(); for (final Buy buy : output.buys) { out.format( "%d.%02d %d.%02d %d.%02d %d.%02d\n", buy.first / 100, buy.first % 100, buy.second / 100, buy.second % 100, buy.third / 100, buy.third % 100, buy.fourth / 100, buy.fourth % 100 ); } out.flush(); out.close(); } } class Output { public Buy[] buys; } class Process { private static final List<Buy> PRECOMPUTE = precompute(); public Output process() { final Output output = new Output(); final boolean precomputed = PRECOMPUTE != null && !PRECOMPUTE.isEmpty(); output.buys = precomputed? PRECOMPUTE.toArray(new Buy[0]) : compute().toArray(new Buy[0]); return output; } private List<Buy> compute() { final List<Buy> buys = new LinkedList<>(); for (long first = 1; first <= 2000; first++) { for (long second = first; second <= 2000 - first; second++) { for (long third = second; third <= 2000 - first - second; third++) { for (long fourth = third; fourth <= 2000 - first - second - third; fourth++) { final long sum = first + second + third + fourth; final long product = first * second * third * fourth; final boolean equals = sum * 1000000 == product; if (equals) { final Buy buy = new Buy(first, second, third, fourth); buys.add(buy); } } } } } return buys; } private static List<Buy> precompute() { final String output = ( "0.08 4.10 7.50 8.00\n" + "0.08 4.20 7.50 7.75\n" + "0.08 4.38 6.25 9.00\n" + "0.08 4.45 6.25 8.80\n" + "0.08 4.50 6.20 8.75\n" + "0.08 4.80 6.25 7.95\n" + "0.08 5.00 6.29 7.50\n" + "0.08 5.40 6.25 6.90\n" + "0.08 5.50 6.25 6.76\n" + "0.08 5.92 6.25 6.25\n" + "0.09 3.75 6.00 9.60\n" + "0.09 4.90 6.25 6.40\n" + "0.10 2.85 7.00 10.00\n" + "0.10 3.00 6.55 10.00\n" + "0.10 3.00 7.50 8.48\n" + "0.10 3.10 6.25 10.08\n" + "0.10 3.12 7.50 8.00\n" + "0.10 3.19 6.25 9.60\n" + "0.10 3.20 6.25 9.55\n" + "0.10 3.22 6.00 10.00\n" + "0.10 3.50 5.44 10.00\n" + "0.10 3.60 6.25 7.96\n" + "0.10 3.72 6.25 7.60\n" + "0.10 3.75 5.12 9.75\n" + "0.10 3.75 5.50 8.80\n" + "0.10 3.75 6.00 7.88\n" + "0.10 3.75 6.50 7.20\n" + "0.10 3.96 4.75 10.00\n" + "0.10 4.00 4.50 10.75\n" + "0.10 4.00 4.70 10.00\n" + "0.10 4.00 5.00 9.10\n" + "0.10 4.00 5.14 8.75\n" + "0.10 4.00 5.25 8.50\n" + "0.10 4.00 5.50 8.00\n" + "0.10 4.00 5.80 7.50\n" + "0.10 4.00 6.25 6.90\n" + "0.10 4.25 6.25 6.40\n" + "0.10 4.50 5.00 7.68\n" + "0.10 4.60 5.84 6.25\n" + "0.10 4.78 5.60 6.25\n" + "0.10 4.84 5.00 7.00\n" + "0.10 5.00 5.55 6.00\n" + "0.11 2.85 6.25 9.60\n" + "0.11 3.00 5.70 10.00\n" + "0.11 4.00 4.15 10.00\n" + "0.11 4.00 5.92 6.25\n" + "0.12 2.50 5.84 11.25\n" + "0.12 2.50 6.31 10.00\n" + "0.12 2.50 6.50 9.60\n" + "0.12 2.50 7.25 8.40\n" + "0.12 2.60 6.00 10.00\n" + "0.12 2.90 5.25 10.00\n" + "0.12 3.00 5.00 10.15\n" + "0.12 5.00 5.00 5.06\n" + "0.13 2.35 6.25 9.60\n" + "0.13 2.80 6.25 7.20\n" + "0.13 3.00 5.25 8.00\n" + "0.14 2.40 4.70 12.50\n" + "0.14 2.50 5.50 8.80\n" + "0.14 2.50 6.24 7.50\n" + "0.14 3.00 3.68 12.50\n" + "0.14 3.00 4.00 10.50\n" + "0.14 3.00 5.00 7.40\n" + "0.14 3.60 5.00 5.75\n" + "0.14 3.75 4.60 6.00\n" + "0.15 1.65 8.00 10.00\n" + "0.15 1.75 8.00 9.00\n" + "0.15 1.92 6.25 10.40\n" + "0.15 1.92 7.50 8.25\n" + "0.15 2.00 6.25 9.60\n" + "0.15 2.00 7.25 8.00\n" + "0.15 2.00 7.50 7.72\n" + "0.15 2.04 5.20 12.50\n" + "0.15 2.24 5.25 10.00\n" + "0.15 2.40 4.30 12.50\n" + "0.15 2.40 6.25 7.04\n" + "0.15 2.50 4.00 13.30\n" + "0.15 2.50 4.50 10.40\n" + "0.15 2.50 4.60 10.00\n" + "0.15 2.50 5.60 7.50\n" + "0.15 2.50 5.76 7.25\n" + "0.15 2.50 6.00 6.92\n" + "0.15 2.56 6.25 6.40\n" + "0.15 2.63 5.00 8.00\n" + "0.15 2.75 3.75 12.16\n" + "0.15 2.83 4.00 10.00\n" + "0.15 3.00 5.00 6.52\n" + "0.15 3.17 3.20 12.50\n" + "0.15 3.20 4.80 6.25\n" + "0.15 3.40 3.75 8.00\n" + "0.15 3.40 4.48 6.25\n" + "0.15 3.75 4.00 6.32\n" + "0.16 1.65 7.50 9.50\n" + "0.16 1.70 7.50 9.00\n" + "0.16 1.75 6.25 10.88\n" + "0.16 1.76 6.25 10.75\n" + "0.16 1.78 6.25 10.50\n" + "0.16 1.90 5.20 12.50\n" + "0.16 1.90 5.50 11.25\n" + "0.16 1.95 6.25 8.80\n" + "0.16 2.00 6.25 8.41\n" + "0.16 2.00 6.90 7.50\n" + "0.16 2.14 6.25 7.50\n" + "0.16 2.25 4.26 12.50\n" + "0.16 2.25 6.00 7.25\n" + "0.16 2.30 6.25 6.70\n" + "0.16 2.35 5.50 7.50\n" + "0.16 2.38 4.00 12.50\n" + "0.16 2.50 3.70 13.25\n" + "0.16 2.50 3.75 12.82\n" + "0.16 2.50 3.79 12.50\n" + "0.16 2.50 4.00 11.10\n" + "0.16 2.50 4.22 10.00\n" + "0.16 2.50 4.50 8.95\n" + "0.16 2.50 4.65 8.50\n" + "0.16 2.50 5.00 7.66\n" + "0.16 2.50 5.08 7.50\n" + "0.16 2.50 5.50 6.80\n" + "0.16 2.50 5.94 6.25\n" + "0.16 2.56 5.75 6.25\n" + "0.16 2.85 3.30 12.50\n" + "0.16 2.90 4.90 6.25\n" + "0.16 2.95 4.80 6.25\n" + "0.16 3.00 4.10 7.50\n" + "0.16 3.26 3.75 7.50\n" + "0.16 3.28 4.25 6.25\n" + "0.16 3.47 4.00 6.25\n" + "0.16 3.60 3.85 6.25\n" + "0.16 3.75 4.00 5.65\n" + "0.17 4.00 4.00 4.75\n" + "0.18 1.60 7.50 8.00\n" + "0.18 2.40 4.50 7.50\n" + "0.18 2.50 4.00 8.35\n" + "0.18 2.80 5.00 5.25\n" + "0.18 2.98 4.00 6.25\n" + "0.18 3.75 3.76 5.00\n" + "0.19 1.25 8.32 10.00\n" + "0.19 2.15 4.00 10.00\n" + "0.20 1.25 8.00 9.45\n" + "0.20 1.25 8.36 9.00\n" + "0.20 1.28 8.25 8.75\n" + "0.20 1.38 6.25 10.80\n" + "0.20 1.40 5.64 12.50\n" + "0.20 1.50 5.85 10.00\n" + "0.20 1.50 7.36 7.50\n" + "0.20 1.57 5.50 10.00\n" + "0.20 1.60 6.25 8.05\n" + "0.20 1.62 5.00 11.00\n" + "0.20 1.71 4.40 12.50\n" + "0.20 1.75 4.78 10.00\n" + "0.20 1.80 5.00 8.75\n" + "0.20 1.80 6.25 6.60\n" + "0.20 1.96 5.80 6.25\n" + "0.20 2.00 3.50 14.25\n" + "0.20 2.00 3.75 11.90\n" + "0.20 2.00 4.38 8.75\n" + "0.20 2.00 4.85 7.50\n" + "0.20 2.00 5.00 7.20\n" + "0.20 2.05 5.44 6.25\n" + "0.20 2.24 5.00 6.00\n" + "0.20 2.25 4.80 6.25\n" + "0.20 2.25 5.00 5.96\n" + "0.20 2.34 4.00 7.50\n" + "0.20 2.39 3.75 8.00\n" + "0.20 2.40 3.02 12.50\n" + "0.20 2.50 2.80 13.75\n" + "0.20 2.50 2.94 12.00\n" + "0.20 2.50 3.00 11.40\n" + "0.20 2.50 3.25 9.52\n" + "0.20 2.50 3.88 7.00\n" + "0.20 2.50 4.00 6.70\n" + "0.20 2.50 4.35 6.00\n" + "0.20 2.50 4.50 5.76\n" + "0.20 2.55 5.00 5.00\n" + "0.20 2.64 3.00 10.00\n" + "0.20 2.80 3.70 6.25\n" + "0.20 3.00 3.00 7.75\n" + "0.20 3.00 3.75 5.56\n" + "0.20 3.00 4.10 5.00\n" + "0.20 3.12 3.30 6.25\n" + "0.20 3.48 3.50 5.00\n" + "0.21 1.25 8.00 8.60\n" + "0.21 2.15 3.20 12.50\n" + "0.21 2.50 4.00 6.10\n" + "0.22 1.20 6.25 11.80\n" + "0.22 1.25 6.75 9.60\n" + "0.22 1.36 6.25 9.00\n" + "0.22 1.65 6.25 6.40\n" + "0.22 1.72 6.00 6.25\n" + "0.22 1.75 4.20 10.00\n" + "0.22 2.00 4.84 6.25\n" + "0.22 2.40 2.70 12.50\n" + "0.22 2.40 3.75 6.50\n" + "0.22 2.50 2.50 13.92\n" + "0.22 2.50 3.00 8.80\n" + "0.22 2.50 3.68 6.25\n" + "0.22 2.50 4.00 5.60\n" + "0.23 2.40 2.50 13.50\n" + "0.23 2.50 2.68 10.00\n" + "0.24 1.25 5.00 12.98\n" + "0.24 1.30 6.25 8.20\n" + "0.24 1.32 4.75 12.50\n" + "0.24 1.42 6.25 7.00\n" + "0.24 1.50 5.75 7.00\n" + "0.24 2.10 2.80 12.50\n" + "0.24 2.25 3.68 6.25\n" + "0.24 2.50 2.50 10.48\n" + "0.24 2.50 3.87 5.00\n" + "0.24 2.55 3.20 6.25\n" + "0.25 0.93 8.75 9.60\n" + "0.25 1.00 6.80 11.50\n" + "0.25 1.00 7.00 11.00\n" + "0.25 1.00 7.36 10.25\n" + "0.25 1.00 7.50 10.00\n" + "0.25 1.00 7.75 9.60\n" + "0.25 1.00 8.00 9.25\n" + "0.25 1.00 8.20 9.00\n" + "0.25 1.06 6.25 11.52\n" + "0.25 1.11 6.40 10.00\n" + "0.25 1.12 6.25 10.16\n" + "0.25 1.15 6.08 10.00\n" + "0.25 1.15 6.25 9.60\n" + "0.25 1.20 5.00 12.90\n" + "0.25 1.20 6.25 8.80\n" + "0.25 1.20 6.75 8.00\n" + "0.25 1.20 7.16 7.50\n" + "0.25 1.22 6.00 9.00\n" + "0.25 1.24 5.00 11.80\n" + "0.25 1.25 4.80 12.60\n" + "0.25 1.25 5.08 11.20\n" + "0.25 1.25 5.20 10.72\n" + "0.25 1.25 5.55 9.60\n" + "0.25 1.25 6.40 7.90\n" + "0.25 1.25 6.96 7.20\n" + "0.25 1.28 5.50 9.25\n" + "0.25 1.28 6.25 7.78\n" + "0.25 1.28 6.45 7.50\n" + "0.25 1.30 5.00 10.48\n" + "0.25 1.32 6.25 7.36\n" + "0.25 1.34 4.50 12.00\n" + "0.25 1.35 5.00 9.60\n" + "0.25 1.40 4.66 10.00\n" + "0.25 1.42 4.00 13.50\n" + "0.25 1.48 5.20 7.50\n" + "0.25 1.48 6.08 6.25\n" + "0.25 1.50 4.00 11.50\n" + "0.25 1.50 4.08 11.00\n" + "0.25 1.50 4.75 8.32\n" + "0.25 1.50 6.00 6.20\n" + "0.25 1.60 3.75 11.20\n" + "0.25 1.60 3.95 10.00\n" + "0.25 1.60 4.00 9.75\n" + "0.25 1.60 4.24 8.75\n" + "0.25 1.60 5.00 6.85\n" + "0.25 1.60 5.40 6.25\n" + "0.25 1.66 5.12 6.25\n" + "0.25 1.68 5.00 6.30\n" + "0.25 1.70 3.75 9.60\n" + "0.25 1.70 4.00 8.50\n" + "0.25 1.70 4.32 7.50\n" + "0.25 1.72 3.20 13.75\n" + "0.25 1.75 3.20 13.00\n" + "0.25 1.75 4.00 8.00\n" + "0.25 1.75 4.48 6.75\n" + "0.25 1.76 4.72 6.25\n" + "0.25 1.80 5.00 5.64\n" + "0.25 1.82 3.40 10.00\n" + "0.25 1.83 4.48 6.25\n" + "0.25 1.84 4.00 7.25\n" + "0.25 1.85 2.88 15.00\n" + "0.25 1.90 2.80 15.00\n" + "0.25 1.90 3.24 10.00\n" + "0.25 1.90 5.00 5.20\n" + "0.25 1.92 3.00 11.75\n" + "0.25 1.92 3.05 11.25\n" + "0.25 1.92 3.75 7.40\n" + "0.25 1.92 4.21 6.25\n" + "0.25 1.92 4.50 5.75\n" + "0.25 2.00 2.68 14.50\n" + "0.25 2.00 2.85 12.00\n" + "0.25 2.00 3.00 10.50\n" + "0.25 2.00 3.25 8.80\n" + "0.25 2.00 3.36 8.25\n" + "0.25 2.00 3.70 7.00\n" + "0.25 2.00 4.00 6.25\n" + "0.25 2.00 4.50 5.40\n" + "0.25 2.01 4.80 5.00\n" + "0.25 2.04 2.60 15.00\n" + "0.25 2.05 4.00 6.00\n" + "0.25 2.08 2.80 11.25\n" + "0.25 2.08 3.75 6.40\n" + "0.25 2.18 2.50 13.60\n" + "0.25 2.19 3.20 7.50\n" + "0.25 2.20 2.50 13.20\n" + "0.25 2.24 3.25 7.00\n" + "0.25 2.25 2.40 14.00\n" + "0.25 2.25 2.56 11.50\n" + "0.25 2.25 2.75 9.60\n" + "0.25 2.25 3.00 8.00\n" + "0.25 2.25 4.00 5.20\n" + "0.25 2.32 3.36 6.25\n" + "0.25 2.35 2.50 10.88\n" + "0.25 2.40 2.50 10.30\n" + "0.25 2.40 2.53 10.00\n" + "0.25 2.40 2.90 7.50\n" + "0.25 2.40 3.75 5.12\n" + "0.25 2.40 4.00 4.75\n" + "0.25 2.47 2.50 9.60\n" + "0.25 2.50 2.56 8.85\n" + "0.25 2.50 2.60 8.56\n" + "0.25 2.50 2.76 7.60\n" + "0.25 2.50 2.80 7.40\n" + "0.25 2.50 3.05 6.40\n" + "0.25 2.50 3.10 6.24\n" + "0.25 2.50 3.20 5.95\n" + "0.25 2.50 3.34 5.60\n" + "0.25 2.50 3.60 5.08\n" + "0.25 2.50 3.92 4.60\n" + "0.25 2.50 4.00 4.50\n" + "0.25 2.56 3.02 6.25\n" + "0.25 2.56 3.55 5.00\n" + "0.25 2.65 3.75 4.48\n" + "0.25 2.68 2.88 6.25\n" + "0.25 2.75 2.88 6.00\n" + "0.25 2.75 4.00 4.00\n" + "0.25 2.80 3.00 5.50\n" + "0.25 2.80 3.22 5.00\n" + "0.25 3.00 3.00 5.00\n" + "0.25 3.10 3.50 4.00\n" + "0.25 3.20 3.60 3.75\n" + "0.26 0.96 7.50 10.00\n" + "0.26 1.12 7.50 7.50\n" + "0.26 1.25 6.50 7.20\n" + "0.26 1.50 3.68 12.50\n" + "0.26 1.75 4.48 6.25\n" + "0.26 1.95 3.00 10.00\n" + "0.26 2.08 2.50 13.75\n" + "0.26 2.32 2.50 10.00\n" + "0.27 1.25 5.60 8.00\n" + "0.27 2.00 3.00 8.50\n" + "0.28 1.00 6.25 10.04\n" + "0.28 1.25 5.50 7.60\n" + "0.28 1.40 4.00 10.00\n" + "0.28 1.50 3.36 12.50\n" + "0.28 1.50 4.00 8.50\n" + "0.28 1.60 3.25 11.25\n" + "0.28 2.00 2.50 11.95\n" + "0.28 2.13 2.50 10.00\n" + "0.28 2.50 2.50 7.04\n" + "0.29 1.00 6.25 9.28\n" + "0.29 2.40 3.75 4.00\n" + "0.29 2.50 2.56 6.25\n" + "0.30 0.75 8.84 10.00\n" + "0.30 0.80 7.50 10.75\n" + "0.30 0.85 6.24 12.50\n" + "0.30 0.92 5.60 12.50\n" + "0.30 0.95 6.25 9.60\n" + "0.30 1.00 5.00 12.60\n" + "0.30 1.00 5.65 10.00\n" + "0.30 1.00 7.04 7.50\n" + "0.30 1.10 6.25 7.20\n" + "0.30 1.12 4.35 12.50\n" + "0.30 1.20 4.00 12.50\n" + "0.30 1.20 6.20 6.25\n" + "0.30 1.25 3.84 12.25\n" + "0.30 1.25 4.00 11.10\n" + "0.30 1.25 4.20 10.00\n" + "0.30 1.25 4.50 8.80\n" + "0.30 1.25 5.12 7.25\n" + "0.30 1.25 5.60 6.50\n" + "0.30 1.25 6.00 6.04\n" + "0.30 1.30 4.00 10.00\n" + "0.30 1.44 4.70 6.25\n" + "0.30 1.50 4.00 7.25\n" + "0.30 1.50 5.00 5.44\n" + "0.30 1.60 2.88 12.50\n" + "0.30 1.75 2.48 15.00\n" + "0.30 1.75 2.50 14.56\n" + "0.30 1.75 4.00 5.50\n" + "0.30 1.76 2.50 14.25\n" + "0.30 1.76 2.60 12.50\n" + "0.30 1.80 2.75 10.00\n" + "0.30 1.85 2.50 12.00\n" + "0.30 1.86 4.00 5.00\n" + "0.30 1.90 2.40 12.50\n" + "0.30 1.95 3.20 6.25\n" + "0.30 2.00 2.25 13.00\n" + "0.30 2.00 2.46 10.00\n" + "0.30 2.00 2.50 9.60\n" + "0.30 2.00 2.60 8.75\n" + "0.30 2.00 2.80 7.50\n" + "0.30 2.00 3.65 5.00\n" + "0.30 2.00 3.75 4.84\n" + "0.30 2.00 4.00 4.50\n" + "0.30 2.16 2.50 8.00\n" + "0.30 2.20 2.80 6.25\n" + "0.30 2.30 3.75 4.00\n" + "0.30 2.40 2.50 6.50\n" + "0.30 2.50 3.00 4.64\n" + "0.30 2.50 3.40 4.00\n" + "0.31 1.00 6.00 8.50\n" + "0.31 1.75 2.50 12.80\n" + "0.32 0.85 6.25 10.60\n" + "0.32 1.00 6.25 7.57\n" + "0.32 1.00 6.30 7.50\n" + "0.32 1.20 5.55 6.25\n" + "0.32 1.25 3.60 11.75\n" + "0.32 1.25 3.75 10.64\n" + "0.32 1.25 4.35 8.00\n" + "0.32 1.25 5.00 6.57\n" + "0.32 1.25 5.25 6.20\n" + "0.32 1.35 5.00 5.75\n" + "0.32 1.51 4.00 6.25\n" + "0.32 1.62 2.50 15.00\n" + "0.32 1.65 4.25 5.00\n" + "0.32 1.80 2.50 10.50\n" + "0.32 2.25 2.52 6.25\n" + "0.32 2.50 2.50 5.32\n" + "0.32 2.50 3.10 4.00\n" + "0.34 0.70 8.00 10.00\n" + "0.34 1.45 3.00 10.00\n" + "0.34 2.00 2.40 7.50\n" + "0.34 2.50 2.85 4.00\n" + "0.35 0.80 5.46 12.50\n" + "0.35 0.81 6.25 9.60\n" + "0.35 1.00 4.54 10.00\n" + "0.35 1.00 6.25 6.40\n" + "0.35 1.20 4.80 6.25\n" + "0.35 1.25 3.00 14.72\n" + "0.35 1.25 3.20 12.00\n" + "0.35 1.25 3.50 9.60\n" + "0.35 1.25 3.84 8.00\n" + "0.35 1.50 2.50 13.92\n" + "0.35 1.60 3.28 6.25\n" + "0.35 2.00 2.25 8.00\n" + "0.35 2.00 2.94 5.00\n" + "0.35 2.50 2.74 4.00\n" + "0.35 2.50 3.00 3.60\n" + "0.36 0.75 7.50 8.40\n" + "0.36 1.00 3.75 14.60\n" + "0.36 1.00 3.96 12.50\n" + "0.36 1.00 5.00 7.95\n" + "0.36 1.00 5.50 7.00\n" + "0.36 1.35 2.80 12.50\n" + "0.36 1.90 3.00 5.00\n" + "0.36 2.00 2.46 6.25\n" + "0.37 1.20 3.75 8.00\n" + "0.37 1.56 2.50 10.00\n" + "0.37 2.00 3.25 4.00\n" + "0.38 1.00 4.80 7.50\n" + "0.38 1.25 2.90 12.00\n" + "0.40 0.64 6.25 12.15\n" + "0.40 0.65 6.25 11.68\n" + "0.40 0.65 7.50 9.00\n" + "0.40 0.68 7.50 8.25\n" + "0.40 0.70 5.44 12.50\n" + "0.40 0.70 6.25 9.80\n" + "0.40 0.75 5.00 12.30\n" + "0.40 0.75 6.92 7.50\n" + "0.40 0.80 6.25 7.45\n" + "0.40 0.84 5.75 7.50\n" + "0.40 0.87 6.25 6.40\n" + "0.40 0.90 6.04 6.25\n" + "0.40 0.95 3.75 12.00\n" + "0.40 0.96 4.00 10.00\n" + "0.40 1.00 3.28 15.00\n" + "0.40 1.00 3.50 12.25\n" + "0.40 1.00 3.75 10.30\n" + "0.40 1.00 3.80 10.00\n" + "0.40 1.00 4.00 9.00\n" + "0.40 1.00 4.06 8.75\n" + "0.40 1.00 4.45 7.50\n" + "0.40 1.00 5.00 6.40\n" + "0.40 1.00 5.10 6.25\n" + "0.40 1.00 5.50 5.75\n" + "0.40 1.09 5.00 5.50\n" + "0.40 1.12 3.75 7.75\n" + "0.40 1.15 4.16 6.25\n" + "0.40 1.20 2.82 12.50\n" + "0.40 1.20 3.50 7.50\n" + "0.40 1.25 2.73 12.00\n" + "0.40 1.25 3.00 9.30\n" + "0.40 1.25 3.25 7.84\n" + "0.40 1.25 3.46 7.00\n" + "0.40 1.25 4.00 5.65\n" + "0.40 1.25 4.50 4.92\n" + "0.40 1.30 2.50 14.00\n" + "0.40 1.34 3.40 6.25\n" + "0.40 1.39 2.50 11.00\n" + "0.40 1.40 2.50 10.75\n" + "0.40 1.40 3.22 6.25\n" + "0.40 1.50 2.38 10.00\n" + "0.40 1.50 2.50 8.80\n" + "0.40 1.50 3.45 5.00\n" + "0.40 1.50 3.75 4.52\n" + "0.40 1.51 2.20 12.50\n" + "0.40 1.52 2.50 8.50\n" + "0.40 1.60 2.50 7.50\n" + "0.40 1.60 2.75 6.25\n" + "0.40 1.63 3.75 4.00\n" + "0.40 1.65 2.50 7.00\n" + "0.40 1.68 3.00 5.00\n" + "0.40 1.75 2.50 6.20\n" + "0.40 1.75 2.86 5.00\n" + "0.40 1.78 2.50 6.00\n" + "0.40 1.80 3.50 3.75\n" + "0.40 1.81 2.40 6.25\n" + "0.40 1.90 2.28 6.25\n" + "0.40 1.98 2.00 7.50\n" + "0.40 2.00 2.50 4.90\n" + "0.40 2.04 2.50 4.75\n" + "0.40 2.20 2.50 4.25\n" + "0.40 2.25 2.50 4.12\n" + "0.40 2.30 2.50 4.00\n" + "0.40 2.50 2.50 3.60\n" + "0.40 2.50 2.56 3.50\n" + "0.40 2.50 2.95 3.00\n" + "0.41 1.00 3.75 9.60\n" + "0.42 0.60 7.25 10.00\n" + "0.42 0.64 6.25 10.75\n" + "0.42 0.70 6.25 8.80\n" + "0.42 1.00 4.72 6.25\n" + "0.42 1.36 2.50 10.00\n" + "0.42 2.00 2.00 6.50\n" + "0.42 2.00 2.04 6.25\n" + "0.42 2.40 2.50 3.50\n" + "0.43 1.25 2.50 12.16\n" + "0.43 1.30 3.20 6.25\n" + "0.43 2.10 2.50 4.00\n" + "0.44 1.20 3.75 5.50\n" + "0.44 1.25 2.85 8.00\n" + "0.44 1.25 3.75 5.12\n" + "0.44 1.44 2.50 7.50\n" + "0.45 0.50 8.76 10.00\n" + "0.45 0.60 6.50 10.00\n" + "0.45 0.65 5.12 12.50\n" + "0.45 0.80 6.00 6.25\n" + "0.45 0.85 4.00 10.00\n" + "0.45 0.92 4.80 6.25\n" + "0.45 0.95 3.20 12.50\n" + "0.45 1.00 5.00 5.16\n" + "0.45 1.20 3.00 7.50\n" + "0.45 1.25 4.00 4.56\n" + "0.45 1.50 3.50 4.00\n" + "0.45 2.00 2.50 3.96\n" + "0.46 0.60 7.50 8.00\n" + "0.46 0.64 6.25 8.75\n" + "0.46 1.00 4.00 6.50\n" + "0.46 1.02 4.00 6.25\n" + "0.46 1.20 2.40 12.50\n" + "0.47 0.60 6.25 9.60\n" + "0.47 1.00 3.10 10.00\n" + "0.47 1.40 3.00 5.00\n" + "0.48 0.50 7.50 10.60\n" + "0.48 0.55 6.25 11.20\n" + "0.48 0.62 5.00 12.50\n" + "0.48 0.65 4.70 12.50\n" + "0.48 0.65 5.25 10.00\n" + "0.48 0.80 4.25 8.75\n" + "0.48 0.88 3.75 8.75\n" + "0.48 0.90 5.00 5.50\n" + "0.48 0.94 3.00 12.50\n" + "0.48 1.05 2.50 15.50\n" + "0.48 1.10 2.50 12.75\n" + "0.48 1.18 2.50 10.00\n" + "0.48 1.20 2.50 9.50\n" + "0.48 1.20 3.05 6.25\n" + "0.48 1.25 2.50 8.46\n" + "0.48 1.30 2.10 12.50\n" + "0.48 1.31 2.50 7.50\n" + "0.48 1.42 2.50 6.25\n" + "0.48 1.50 1.81 12.50\n" + "0.48 1.50 2.50 5.60\n" + "0.48 1.70 2.50 4.50\n" + "0.48 1.75 2.50 4.30\n" + "0.48 2.30 2.50 3.00\n" + "0.48 2.50 2.50 2.74\n" + "0.49 0.80 5.20 6.25\n" + "0.49 1.00 3.25 8.00\n" + "0.50 0.50 6.50 12.00\n" + "0.50 0.50 7.20 10.25\n" + "0.50 0.50 8.00 9.00\n" + "0.50 0.60 5.00 12.20\n" + "0.50 0.60 5.20 11.25\n" + "0.50 0.60 5.55 10.00\n" + "0.50 0.60 6.25 8.40\n" + "0.50 0.60 6.50 8.00\n" + "0.50 0.60 6.88 7.50\n" + "0.50 0.63 4.64 12.50\n" + "0.50 0.64 6.25 7.39\n" + "0.50 0.65 5.00 9.84\n" + "0.50 0.68 4.40 11.25\n" + "0.50 0.68 5.60 7.50\n" + "0.50 0.70 4.00 13.00\n" + "0.50 0.70 4.48 10.00\n" + "0.50 0.72 3.75 14.20\n" + "0.50 0.72 3.92 12.50\n" + "0.50 0.75 3.50 15.20\n" + "0.50 0.75 3.92 11.00\n" + "0.50 0.75 4.00 10.50\n" + "0.50 0.75 4.75 7.68\n" + "0.50 0.75 5.80 6.00\n" + "0.50 0.80 3.26 15.00\n" + "0.50 0.80 3.45 12.50\n" + "0.50 0.80 3.50 12.00\n" + "0.50 0.80 3.75 10.10\n" + "0.50 0.80 4.02 8.75\n" + "0.50 0.80 4.40 7.50\n" + "0.50 0.80 4.50 7.25\n" + "0.50 0.80 5.00 6.30\n" + "0.50 0.88 4.36 6.25\n" + "0.50 0.88 4.50 6.00\n" + "0.50 0.90 4.00 6.75\n" + "0.50 0.90 5.00 5.12\n" + "0.50 0.99 4.40 5.00\n" + "0.50 1.00 2.50 16.00\n" + "0.50 1.00 2.56 14.50\n" + "0.50 1.00 2.70 12.00\n" + "0.50 1.00 2.80 10.75\n" + "0.50 1.00 3.00 9.00\n" + "0.50 1.00 3.12 8.25\n" + "0.50 1.00 3.25 7.60\n" + "0.50 1.00 3.40 7.00\n" + "0.50 1.00 3.75 6.00\n" + "0.50 1.00 4.00 5.50\n" + "0.50 1.00 4.50 4.80\n" + "0.50 1.05 2.50 12.96\n" + "0.50 1.08 3.75 5.20\n" + "0.50 1.10 2.40 12.50\n" + "0.50 1.12 2.50 10.30\n" + "0.50 1.12 2.85 7.50\n" + "0.50 1.18 2.25 12.00\n" + "0.50 1.18 2.50 8.80\n" + "0.50 1.20 2.34 10.00\n" + "0.50 1.20 2.50 8.40\n" + "0.50 1.20 3.35 5.00\n" + "0.50 1.20 3.75 4.36\n" + "0.50 1.25 2.00 15.00\n" + "0.50 1.25 2.10 12.32\n" + "0.50 1.25 2.27 9.60\n" + "0.50 1.25 2.40 8.30\n" + "0.50 1.25 2.60 6.96\n" + "0.50 1.25 2.94 5.60\n" + "0.50 1.25 3.20 4.95\n" + "0.50 1.25 3.60 4.28\n" + "0.50 1.27 2.20 10.00\n" + "0.50 1.28 2.00 13.50\n" + "0.50 1.28 2.04 12.50\n" + "0.50 1.28 3.75 3.95\n" + "0.50 1.30 1.92 15.00\n" + "0.50 1.30 2.40 7.50\n" + "0.50 1.30 2.50 6.88\n" + "0.50 1.33 2.56 6.25\n" + "0.50 1.35 2.00 11.00\n" + "0.50 1.40 2.00 9.75\n" + "0.50 1.40 2.76 5.00\n" + "0.50 1.44 1.70 16.25\n" + "0.50 1.44 2.34 6.25\n" + "0.50 1.44 2.50 5.55\n" + "0.50 1.49 3.20 3.75\n" + "0.50 1.50 1.75 12.00\n" + "0.50 1.50 1.76 11.75\n" + "0.50 1.50 2.00 8.00\n" + "0.50 1.50 2.40 5.50\n" + "0.50 1.50 3.00 4.00\n" + "0.50 1.56 2.00 7.25\n" + "0.50 1.56 2.50 4.80\n" + "0.50 1.58 2.40 5.00\n" + "0.50 1.60 1.92 7.50\n" + "0.50 1.60 2.50 4.60\n" + "0.50 1.70 2.00 6.00\n" + "0.50 1.70 2.72 3.75\n" + "0.50 1.75 2.50 4.00\n" + "0.50 1.80 2.50 3.84\n" + "0.50 1.90 2.40 3.75\n" + "0.50 2.00 2.00 4.50\n" + "0.50 2.00 2.25 3.80\n" + "0.50 2.00 2.40 3.50\n" + "0.50 2.00 2.75 3.00\n" + "0.50 2.32 2.50 2.80\n" + "0.50 2.40 2.50 2.70\n" + "0.51 1.00 4.20 5.00\n" + "0.52 0.70 4.25 10.00\n" + "0.52 0.75 5.00 6.60\n" + "0.52 1.00 2.50 13.40\n" + "0.52 1.20 2.00 15.00\n" + "0.52 1.25 2.14 10.00\n" + "0.52 1.25 3.75 3.84\n" + "0.53 0.88 4.00 6.25\n" + "0.53 1.00 2.50 12.40\n" + "0.54 1.00 3.28 6.25\n" + "0.54 1.25 1.84 15.00\n" + "0.54 1.25 2.50 6.24\n" + "0.54 1.60 2.50 4.00\n" + "0.55 0.64 6.20 6.25\n" + "0.55 1.00 2.25 16.00\n" + "0.55 1.00 2.50 10.80\n" + "0.55 1.00 3.00 7.00\n" + "0.55 1.00 3.20 6.25\n" + "0.55 1.20 2.56 6.25\n" + "0.55 1.25 1.78 16.00\n" + "0.56 0.75 3.75 8.80\n" + "0.56 0.90 4.25 5.00\n" + "0.56 0.98 3.75 5.00\n" + "0.56 1.00 2.50 10.15\n" + "0.57 1.44 2.00 6.25\n" + "0.58 0.61 4.00 12.50\n" + "0.58 2.00 2.25 3.00\n" + "0.59 0.64 5.50 6.25\n" + "0.59 0.80 3.50 7.50\n" + "0.59 2.08 2.50 2.50\n" + "0.60 0.60 5.00 7.75\n" + "0.60 0.60 5.96 6.25\n" + "0.60 0.63 5.00 7.00\n" + "0.60 0.64 5.35 6.25\n" + "0.60 0.75 5.00 5.08\n" + "0.60 0.80 2.78 12.50\n" + "0.60 0.80 3.00 10.00\n" + "0.60 0.85 3.52 6.25\n" + "0.60 1.00 2.04 16.25\n" + "0.60 1.00 2.25 11.00\n" + "0.60 1.00 2.32 10.00\n" + "0.60 1.00 2.50 8.20\n" + "0.60 1.00 2.60 7.50\n" + "0.60 1.00 3.00 5.75\n" + "0.60 1.00 3.30 5.00\n" + "0.60 1.00 3.75 4.28\n" + "0.60 1.00 4.00 4.00\n" + "0.60 1.08 2.60 6.25\n" + "0.60 1.20 2.30 6.25\n" + "0.60 1.25 1.75 11.52\n" + "0.60 1.25 1.97 8.00\n" + "0.60 1.25 2.00 7.70\n" + "0.60 1.25 3.00 3.88\n" + "0.60 1.30 1.75 10.00\n" + "0.60 1.42 2.50 4.00\n" + "0.60 1.50 2.50 3.68\n" + "0.60 1.50 3.00 3.00\n" + "0.60 1.52 2.00 5.00\n" + "0.60 1.60 1.69 6.25\n" + "0.60 2.00 2.50 2.55\n" + "0.61 0.70 4.00 7.50\n" + "0.61 0.92 2.50 10.00\n" + "0.62 1.50 2.25 4.00\n" + "0.63 1.25 1.75 9.60\n" + "0.63 1.60 1.60 6.25\n" + "0.64 0.65 3.75 9.00\n" + "0.64 0.67 4.50 6.25\n" + "0.64 0.75 3.82 6.25\n" + "0.64 0.76 3.75 6.25\n" + "0.64 0.95 2.80 6.25\n" + "0.64 1.00 2.00 13.00\n" + "0.64 1.00 2.02 12.50\n" + "0.64 1.00 2.50 6.90\n" + "0.64 1.00 2.63 6.25\n" + "0.64 1.00 3.75 3.85\n" + "0.64 1.10 2.35 6.25\n" + "0.64 1.25 1.75 9.10\n" + "0.64 1.25 2.50 4.39\n" + "0.64 1.25 2.82 3.75\n" + "0.64 1.27 2.00 6.25\n" + "0.64 1.30 1.95 6.25\n" + "0.64 1.44 1.75 6.25\n" + "0.64 1.50 2.00 4.50\n" + "0.64 1.88 2.50 2.50\n" + "0.65 0.96 3.75 4.00\n" + "0.65 1.00 2.50 6.64\n" + "0.65 1.16 2.00 7.50\n" + "0.65 1.20 1.64 12.50\n" + "0.65 1.25 1.80 8.00\n" + "0.65 1.25 2.00 6.24\n" + "0.65 1.30 2.50 4.00\n" + "0.66 1.00 2.50 6.40\n" + "0.67 2.00 2.20 2.50\n" + "0.68 1.00 2.44 6.25\n" + "0.68 1.00 3.00 4.50\n" + "0.69 0.80 2.50 10.50\n" + "0.69 1.25 2.50 3.84\n" + "0.70 0.75 2.50 12.64\n" + "0.70 0.76 2.50 12.00\n" + "0.70 0.78 2.40 12.50\n" + "0.70 0.80 2.50 10.00\n" + "0.70 0.80 3.10 6.25\n" + "0.70 1.00 1.95 10.00\n" + "0.70 1.00 2.00 9.25\n" + "0.70 1.00 2.50 5.60\n" + "0.70 1.00 2.68 5.00\n" + "0.70 1.12 2.50 4.50\n" + "0.70 1.20 2.50 4.00\n" + "0.70 1.25 1.50 11.04\n" + "0.70 1.25 2.38 4.00\n" + "0.70 1.30 1.76 6.25\n" + "0.70 1.75 2.40 2.50\n" + "0.70 2.00 2.08 2.50\n" + "0.72 1.25 2.75 3.20\n" + "0.72 1.50 1.50 6.00\n" + "0.73 1.00 2.24 6.25\n" + "0.74 0.75 4.00 4.50\n" + "0.74 1.00 2.25 6.00\n" + "0.74 1.20 1.80 6.25\n" + "0.75 0.75 4.00 4.40\n" + "0.75 0.78 3.00 6.00\n" + "0.75 0.80 2.31 10.00\n" + "0.75 0.80 2.50 8.10\n" + "0.75 0.80 3.75 4.24\n" + "0.75 0.88 2.25 8.00\n" + "0.75 0.90 2.80 5.00\n" + "0.75 0.94 2.00 9.00\n" + "0.75 1.00 1.75 11.20\n" + "0.75 1.00 1.95 8.00\n" + "0.75 1.00 2.00 7.50\n" + "0.75 1.00 2.32 5.50\n" + "0.75 1.00 3.00 3.80\n" + "0.75 1.14 1.50 12.00\n" + "0.75 1.20 2.40 3.75\n" + "0.75 1.20 2.50 3.56\n" + "0.75 1.25 1.28 16.40\n" + "0.75 1.25 1.40 10.88\n" + "0.75 1.25 1.45 9.60\n" + "0.75 1.25 1.60 7.20\n" + "0.75 1.25 1.68 6.40\n" + "0.75 1.25 1.92 4.90\n" + "0.75 1.25 2.40 3.52\n" + "0.75 1.25 2.60 3.20\n" + "0.75 1.28 1.85 5.00\n" + "0.75 1.29 2.50 3.20\n" + "0.75 1.35 2.00 4.00\n" + "0.75 1.47 1.60 5.00\n" + "0.75 1.50 2.00 3.40\n" + "0.75 1.76 2.00 2.75\n" + "0.76 1.06 2.00 6.25\n" + "0.76 1.10 2.50 4.00\n" + "0.76 1.25 2.50 3.28\n" + "0.77 0.80 2.10 12.50\n" + "0.78 0.80 2.70 6.25\n" + "0.78 1.00 2.00 6.75\n" + "0.79 1.00 2.50 4.40\n" + "0.80 0.80 2.25 8.75\n" + "0.80 0.80 3.00 5.00\n" + "0.80 0.88 2.50 5.50\n" + "0.80 0.90 2.50 5.25\n" + "0.80 1.00 1.50 16.50\n" + "0.80 1.00 1.86 7.50\n" + "0.80 1.00 2.50 4.30\n" + "0.80 1.10 1.44 12.50\n" + "0.80 1.20 1.25 16.25\n" + "0.80 1.20 1.65 6.25\n" + "0.80 1.25 1.25 13.20\n" + "0.80 1.25 1.50 7.10\n" + "0.80 1.25 1.61 6.00\n" + "0.80 1.25 2.00 4.05\n" + "0.80 1.25 2.22 3.50\n" + "0.80 1.25 2.25 3.44\n" + "0.80 1.26 2.50 3.00\n" + "0.80 1.31 2.00 3.75\n" + "0.80 1.36 1.45 6.25\n" + "0.80 1.45 2.50 2.50\n" + "0.80 1.46 1.50 5.00\n" + "0.80 1.50 1.50 4.75\n" + "0.80 1.50 2.40 2.50\n" + "0.80 1.75 2.02 2.50\n" + "0.81 1.10 2.00 5.00\n" + "0.82 1.00 2.20 5.00\n" + "0.84 1.00 1.60 10.00\n" + "0.84 1.00 2.60 3.75\n" + "0.85 0.98 2.50 4.00\n" + "0.85 1.00 1.58 10.00\n" + "0.85 1.00 2.00 5.50\n" + "0.85 1.00 2.56 3.75\n" + "0.85 1.16 1.60 6.25\n" + "0.85 1.20 1.25 12.00\n" + "0.85 1.25 1.75 4.48\n" + "0.87 1.00 1.40 15.00\n" + "0.88 0.96 1.50 12.50\n" + "0.88 1.00 2.50 3.65\n" + "0.88 1.75 1.80 2.50\n" + "0.90 1.00 2.50 3.52\n" + "0.90 1.25 2.00 3.32\n" + "0.92 1.00 1.50 9.00\n" + "0.92 1.00 1.72 6.25\n" + "0.92 1.00 2.50 3.40\n" + "0.94 1.00 1.68 6.25\n" + "0.95 1.20 1.25 8.00\n" + "0.96 1.00 1.25 16.05\n" + "0.96 1.11 1.25 10.00\n" + "0.96 1.20 1.25 7.75\n" + "0.96 1.25 1.25 6.92\n" + "0.96 1.25 1.75 3.60\n" + "1.00 1.00 1.20 16.00\n" + "1.00 1.00 1.24 13.50\n" + "1.00 1.00 1.25 13.00\n" + "1.00 1.00 1.30 11.00\n" + "1.00 1.00 1.40 8.50\n" + "1.00 1.00 1.48 7.25\n" + "1.00 1.00 1.50 7.00\n" + "1.00 1.00 1.60 6.00\n" + "1.00 1.00 1.75 5.00\n" + "1.00 1.00 1.80 4.75\n" + "1.00 1.00 2.00 4.00\n" + "1.00 1.00 2.20 3.50\n" + "1.00 1.00 2.25 3.40\n" + "1.00 1.00 2.50 3.00\n" + "1.00 1.05 1.20 12.50\n" + "1.00 1.05 1.25 10.56\n" + "1.00 1.05 2.50 2.80\n" + "1.00 1.10 1.21 10.00\n" + "1.00 1.12 1.30 7.50\n" + "1.00 1.15 2.48 2.50\n" + "1.00 1.18 2.40 2.50\n" + "1.00 1.20 1.25 6.90\n" + "1.00 1.20 1.30 6.25\n" + "1.00 1.20 1.44 5.00\n" + "1.00 1.20 1.70 3.75\n" + "1.00 1.20 2.00 3.00\n" + "1.00 1.20 2.35 2.50\n" + "1.00 1.25 1.30 5.68\n" + "1.00 1.25 1.41 4.80\n" + "1.00 1.25 1.60 3.85\n" + "1.00 1.25 1.80 3.24\n" + "1.00 1.25 2.02 2.80\n" + "1.00 1.27 1.60 3.75\n" + "1.00 1.28 1.75 3.25\n" + "1.00 1.30 1.50 4.00\n" + "1.00 1.40 1.96 2.50\n" + "1.00 1.44 1.90 2.50\n" + "1.00 1.50 1.50 3.20\n" + "1.00 1.50 1.68 2.75\n" + "1.00 1.50 2.00 2.25\n" + "1.00 1.60 1.70 2.50\n" + "1.00 1.75 1.90 2.00\n" + "1.02 1.12 2.50 2.50\n" + "1.04 1.25 1.40 4.50\n" + "1.06 1.25 2.08 2.50\n" + "1.10 1.50 2.00 2.00\n" + "1.12 1.20 1.25 5.25\n" + "1.12 1.25 1.44 3.75\n" + "1.12 1.50 1.60 2.50\n" + "1.13 1.25 2.00 2.40\n" + "1.14 1.20 2.00 2.50\n" + "1.17 1.25 1.60 3.00\n" + "1.19 1.25 1.50 3.20\n" + "1.20 1.25 1.29 4.00\n" + "1.20 1.25 1.40 3.50\n" + "1.20 1.25 1.50 3.16\n" + "1.20 1.25 1.80 2.50\n" + "1.25 1.25 1.28 3.78\n" + "1.25 1.25 1.92 2.21\n" + "1.25 1.40 1.86 2.00\n" + "1.25 1.60 1.75 1.84\n" ); final List<Buy> buys = new LinkedList<>(); for (final String line : output.split("\n")) { final String[] texts = line.split(" "); final int[] values = Arrays.stream(texts) .mapToInt(text -> { final String[] elements = text.split("\\."); return Integer.parseInt(elements[0]) * 100 + Integer.parseInt(elements[1]); }) .toArray(); final Buy buy = new Buy(values[0], values[1], values[2], values[3]); buys.add(buy); } return buys; } } class Buy { public final long first; public final long second; public final long third; public final long fourth; public final long product; public final long sum; public Buy(final long first, final long second, final long third, final long fourth) { this.first = first; this.second = second; this.third = third; this.fourth = fourth; this.product = first * second * third * fourth; this.sum = first + second + third + fourth; } }


Powered by Docmost