Tasks Details
  
    
    
      
        
          
        
       
      
        
          
          
          
          
            
              
                
        
        
          
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
         
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
  
          
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
            
            
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
  
          
            
              
                
                
                  
                    
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
         
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
  
          
            
              
                
                
                  
                    
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
        
        
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
  
          
            
              
                
                
                  
                    
            
          
        
       
    
   
 
                      
                        
  
  
  
    
      
    
      
        
          
            
              
              
              
                
              
              
          
        
      
    
  
                        
  
    
    
      
        
          
            
        
    
  
  
  
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
      
      
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
        
        
          
            
              
              
            
             
              
                
                  
                  
              
             
           
        
      
       
    
  
          
            
          
        
       
    
   
 
                      
                    
                  
                
              
            
          
          
        
      
    
  
    
          easy
        
        
          
          
            Maximize A[P] * A[Q] * A[R] for any triplet (P, Q, R).
          
        
 
        
  
    
    Task Score
    
    
  
  
    
      
        
          
            
        
      
    
  
          
              100%
            
          
  
    
    Correctness
    
    
  
  
    
      
        
          
            
        
      
    
  
          
              100%
            
          
  
    
    Performance
    
    
  
  
    
      
        
          
            
        
      
    
  
        
              100%
            
          A non-empty array A consisting of N integers is given. The product of triplet (P, Q, R) equates to A[P] * A[Q] * A[R] (0 ≤ P < Q < R < N).
For example, array A such that:
A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6contains the following example triplets:
- (0, 1, 2), product is −3 * 1 * 2 = −6
- (1, 2, 4), product is 1 * 2 * 5 = 10
- (2, 4, 5), product is 2 * 5 * 6 = 60
Your goal is to find the maximal product of any triplet.
Write a function:
class Solution { public int solution(int[] A); }
that, given a non-empty array A, returns the value of the maximal product of any triplet.
For example, given array A such that:
A[0] = -3 A[1] = 1 A[2] = 2 A[3] = -2 A[4] = 5 A[5] = 6the function should return 60, as the product of triplet (2, 4, 5) is maximal.
Write an efficient algorithm for the following assumptions:
- N is an integer within the range [3..100,000];
- each element of array A is an integer within the range [−1,000..1,000].
Copyright 2009–2025 by Codility Limited. All Rights Reserved. Unauthorized copying, publication or disclosure prohibited.
              
            
          
            Solution
            
            
              
                
              
            
          
          
          
            
              Programming language used Java 21
            
          
          
            
            
              Time spent on task 11 minutes
              
            
            
          
          
          
            
              
                
                  Notes
                  
                    
                  
                
               
              
                
              
              
                
                  
                    
                  
                  
                  
                  
                  
                    
                  
                  
                    
                      
                        
  
  
                      
                        
                          not defined yet
                        
                      
                      
                    
                    
                  
        Code: 07:49:46 UTC,
        
          java,
        
        
          verify,
          
            
              result: Failed
            
          
          
        
      
      
      
      
    // you can also use imports, for example:
// import java.util.*;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
    public int solution(int[] A) {
        int[] maxes = new int[3]; // maxes[0] <= maxes[1] <= maxes[2]
        int[] mins = new int[2];  // mins [0] <= mins [1]
        boolean foundZero = false;
        // O(n)        
        for( int a : A )
        {
            updateMaxes( a, maxes );
            updateMins( a, mins );
        }
 
        System.out.println(Arrays.toString(maxes));
        System.out.println(Arrays.toString(mins));
        
        int obvious = maxes[0] * maxes[1] * maxes[2];
        int twoBigNegs = mins[0] * mins[1] * maxes[2];
        return Math.max( obvious, twoBigNegs );
    }
    
    private static void updateMaxes( int a, int[] maxes )
    {
        if( a >= maxes[2] ) {
            // Found new max, shift down
            maxes[0] = maxes[1];
            maxes[1] = maxes[2];
            maxes[2] = a;
        } else if( a >= maxes[1] ) {
            maxes[0] = maxes[1];
            maxes[1] = a;
        } else if( a > maxes[0] ) {
            maxes[0] = a;
        }
    }
    private static void updateMins( int a, int[] mins )
    {
        if( a <= mins[0] ) {
            // Found new min, shift down
            mins[1] = mins[0];
            mins[0] = a;
        } else if( a < mins[1] ) {
            mins[1] = a;
        }
    }
}
          Analysis 
          
            
          
        
        
          
  
    Compile error
    Solution.java:20: error: cannot find symbol
        System.out.println(Arrays.toString(maxes));
                           ^
  symbol:   variable Arrays
  location: class Solution
Solution.java:21: error: cannot find symbol
        System.out.println(Arrays.toString(mins));
                           ^
  symbol:   variable Arrays
  location: class Solution
2 errors
  
          
            
          
        
      
        Code: 07:50:05 UTC,
        
          java,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    // you can also use imports, for example:
import java.util.Arrays;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
    public int solution(int[] A) {
        int[] maxes = new int[3]; // maxes[0] <= maxes[1] <= maxes[2]
        int[] mins = new int[2];  // mins [0] <= mins [1]
        boolean foundZero = false;
        // O(n)        
        for( int a : A )
        {
            updateMaxes( a, maxes );
            updateMins( a, mins );
        }
 
        System.out.println(Arrays.toString(maxes));
        System.out.println(Arrays.toString(mins));
        
        int obvious = maxes[0] * maxes[1] * maxes[2];
        int twoBigNegs = mins[0] * mins[1] * maxes[2];
        return Math.max( obvious, twoBigNegs );
    }
    
    private static void updateMaxes( int a, int[] maxes )
    {
        if( a >= maxes[2] ) {
            // Found new max, shift down
            maxes[0] = maxes[1];
            maxes[1] = maxes[2];
            maxes[2] = a;
        } else if( a >= maxes[1] ) {
            maxes[0] = maxes[1];
            maxes[1] = a;
        } else if( a > maxes[0] ) {
            maxes[0] = a;
        }
    }
    private static void updateMins( int a, int[] mins )
    {
        if( a <= mins[0] ) {
            // Found new min, shift down
            mins[1] = mins[0];
            mins[0] = a;
        } else if( a < mins[1] ) {
            mins[1] = a;
        }
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        
          expand all 
        
        Example tests
      
      
        
        
                1.
              
              
              
                
                  1.504 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-3, -2]
        Code: 07:53:12 UTC,
        
          java,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    // you can also use imports, for example:
import java.util.Arrays;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
    public int solution(int[] A) {
        int[] maxes = new int[3]; // maxes[0] <= maxes[1] <= maxes[2]
        int[] mins = new int[2];  // mins [0] <= mins [1]
        boolean foundZero = false;
        // O(n)        
        for( int a : A )
        {
            updateMaxes( a, maxes );
            updateMins( a, mins );
        }
 
        System.out.println(Arrays.toString(maxes));
        System.out.println(Arrays.toString(mins));
        
        int obvious = maxes[0] * maxes[1] * maxes[2];
        int twoBigNegs = mins[0] * mins[1] * maxes[2];
        return Math.max( obvious, twoBigNegs );
    }
    
    private static void updateMaxes( int a, int[] maxes )
    {
        if( a >= maxes[2] ) {
            // Found new max, shift down
            maxes[0] = maxes[1];
            maxes[1] = maxes[2];
            maxes[2] = a;
        } else if( a >= maxes[1] ) {
            maxes[0] = maxes[1];
            maxes[1] = a;
        } else if( a > maxes[0] ) {
            maxes[0] = a;
        }
    }
    private static void updateMins( int a, int[] mins )
    {
        if( a <= mins[0] ) {
            // Found new min, shift down
            mins[1] = mins[0];
            mins[0] = a;
        } else if( a < mins[1] ) {
            mins[1] = a;
        }
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        
          expand all 
        
        Example tests
      
      
        
        
                1.
              
              
              
                
                  1.076 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-3, -2]
        
          expand all 
        
        User tests
      
      
        
        
                1.
              
              
              
                
                  0.940 s
                
              
              
              
                
                  OK
                
                
                  
function result: 180
            function result: 180
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-6, -5]
                1.
              
              
              
                
                  0.904 s
                
              
              
              
                
                  OK
                
                
                  
function result: 36
            function result: 36
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [0, 1, 6] [-3, -2]
                1.
              
              
              
                
                  0.912 s
                
              
              
              
                
                  OK
                
                
                  
function result: 6
            function result: 6
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [0, 0, 1] [-3, -2]
                1.
              
              
              
                
                  0.916 s
                
              
              
              
                
                  OK
                
                
                  
function result: 0
            function result: 0
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [0, 0, 1] [-2, 0]
                      User test case 1:
                      
                  
                    None
                      User test case 2:
                      
                  
                    None
                      User test case 3:
                      
                  
                    None
                      User test case 4:
                      
                  
                  
                
              None
        Code: 07:57:44 UTC,
        
          java,
        
        
          verify,
          
            
              result: Failed
            
          
          
        
      
      
      
      
    
                1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
              
            
            // you can also use imports, for example:
import java.util.Arrays;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
    public int solution(int[] A) {
        
        int[] maxes = {Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE};
        // Invariant: maxes[0] <= maxes[1] <= maxes[2]
        
        int[] mins = {Integer.MAX_VALUE, Integer.MAX_VALUE}
        // Invariant: mins[0] <= mins[1]
        // O(n)        
        for( int a : A )
        {
            updateMaxes( a, maxes );
            updateMins( a, mins );
        }
 
        System.out.println(Arrays.toString(maxes));
        System.out.println(Arrays.toString(mins));
        
        int obvious = maxes[0] * maxes[1] * maxes[2];
        int twoBigNegs = mins[0] * mins[1] * maxes[2];
        return Math.max( obvious, twoBigNegs );
    }
    
    private static void updateMaxes( int a, int[] maxes )
    {
        if( a >= maxes[2] ) {
            // Found new max, shift down
            maxes[0] = maxes[1];
            maxes[1] = maxes[2];
            maxes[2] = a;
        } else if( a >= maxes[1] ) {
            maxes[0] = maxes[1];
            maxes[1] = a;
        } else if( a > maxes[0] ) {
            maxes[0] = a;
        }
    }
    private static void updateMins( int a, int[] mins )
    {
        if( a <= mins[0] ) {
            // Found new min, shift down
            mins[1] = mins[0];
            mins[0] = a;
        } else if( a < mins[1] ) {
            mins[1] = a;
        }
    }
}
          Analysis 
          
            
          
        
        
          
  
    Compile error
    Solution.java:13: error: ';' expected
        int[] mins = {Integer.MAX_VALUE, Integer.MAX_VALUE}
                                                           ^
1 error
  
          
            
          
        
      
        Code: 07:57:56 UTC,
        
          java,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    
                1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
              
            
            // you can also use imports, for example:
import java.util.Arrays;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
    public int solution(int[] A) {
        
        int[] maxes = {Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE};
        // Invariant: maxes[0] <= maxes[1] <= maxes[2]
        
        int[] mins = {Integer.MAX_VALUE, Integer.MAX_VALUE};
        // Invariant: mins[0] <= mins[1]
        // O(n)        
        for( int a : A )
        {
            updateMaxes( a, maxes );
            updateMins( a, mins );
        }
 
        System.out.println(Arrays.toString(maxes));
        System.out.println(Arrays.toString(mins));
        
        int obvious = maxes[0] * maxes[1] * maxes[2];
        int twoBigNegs = mins[0] * mins[1] * maxes[2];
        return Math.max( obvious, twoBigNegs );
    }
    
    private static void updateMaxes( int a, int[] maxes )
    {
        if( a >= maxes[2] ) {
            // Found new max, shift down
            maxes[0] = maxes[1];
            maxes[1] = maxes[2];
            maxes[2] = a;
        } else if( a >= maxes[1] ) {
            maxes[0] = maxes[1];
            maxes[1] = a;
        } else if( a > maxes[0] ) {
            maxes[0] = a;
        }
    }
    private static void updateMins( int a, int[] mins )
    {
        if( a <= mins[0] ) {
            // Found new min, shift down
            mins[1] = mins[0];
            mins[0] = a;
        } else if( a < mins[1] ) {
            mins[1] = a;
        }
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        
          expand all 
        
        Example tests
      
      
        
        
                1.
              
              
              
                
                  1.136 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-3, -2]
        
          expand all 
        
        User tests
      
      
        
        
                1.
              
              
              
                
                  1.060 s
                
              
              
              
                
                  OK
                
                
                  
function result: 180
            function result: 180
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-6, -5]
                1.
              
              
              
                
                  0.960 s
                
              
              
              
                
                  OK
                
                
                  
function result: 36
            function result: 36
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [0, 1, 6] [-3, -2]
                1.
              
              
              
                
                  0.968 s
                
              
              
              
                
                  OK
                
                
                  
function result: 6
            function result: 6
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [-3, -2, 1] [-3, -2]
                1.
              
              
              
                
                  0.952 s
                
              
              
              
                
                  OK
                
                
                  
function result: 0
            function result: 0
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [-2, 0, 1] [-2, 0]
                      User test case 1:
                      
                  
                    None
                      User test case 2:
                      
                  
                    None
                      User test case 3:
                      
                  
                    None
                      User test case 4:
                      
                  
                  
                
              None
        Code: 07:58:51 UTC,
        
          java,
        
        
          verify,
          
            
              result: Passed
            
          
          
        
      
      
      
      
    
                1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
              
            
            // you can also use imports, for example:
import java.util.Arrays;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
    public int solution(int[] A) {
        
        int[] maxes = {Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE};
        // Invariant: maxes[0] <= maxes[1] <= maxes[2]
        
        int[] mins = {Integer.MAX_VALUE, Integer.MAX_VALUE};
        // Invariant: mins[0] <= mins[1]
        // O(n)        
        for( int a : A )
        {
            updateMaxes( a, maxes );
            updateMins( a, mins );
        }
 
        System.out.println(Arrays.toString(maxes));
        System.out.println(Arrays.toString(mins));
        
        int obvious = maxes[0] * maxes[1] * maxes[2];
        int twoBigNegs = mins[0] * mins[1] * maxes[2];
        return Math.max( obvious, twoBigNegs );
    }
    
    private static void updateMaxes( int a, int[] maxes )
    {
        if( a >= maxes[2] ) {
            // Found new max, shift down
            maxes[0] = maxes[1];
            maxes[1] = maxes[2];
            maxes[2] = a;
        } else if( a >= maxes[1] ) {
            maxes[0] = maxes[1];
            maxes[1] = a;
        } else if( a > maxes[0] ) {
            maxes[0] = a;
        }
    }
    private static void updateMins( int a, int[] mins )
    {
        if( a <= mins[0] ) {
            // Found new min, shift down
            mins[1] = mins[0];
            mins[0] = a;
        } else if( a < mins[1] ) {
            mins[1] = a;
        }
    }
}
          Analysis 
          
            
          
        
        
          
  
  
  
        
          expand all 
        
        Example tests
      
      
        
        
                1.
              
              
              
                
                  1.528 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-3, -2]
        
          expand all 
        
        User tests
      
      
        
        
                1.
              
              
              
                
                  1.488 s
                
              
              
              
                
                  OK
                
                
                  
function result: 180
            function result: 180
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-6, -5]
                1.
              
              
              
                
                  1.496 s
                
              
              
              
                
                  OK
                
                
                  
function result: 36
            function result: 36
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [0, 1, 6] [-3, -2]
                1.
              
              
              
                
                  1.472 s
                
              
              
              
                
                  OK
                
                
                  
function result: 6
            function result: 6
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [-3, -2, 1] [-3, -2]
                1.
              
              
              
                
                  1.480 s
                
              
              
              
                
                  OK
                
                
                  
function result: 0
            function result: 0
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [-2, 0, 1] [-2, 0]
                      User test case 1:
                      
                  
                    None
                      User test case 2:
                      
                  
                    None
                      User test case 3:
                      
                  
                    None
                      User test case 4:
                      
                  
                  
                
              None
        Code: 07:59:09 UTC,
        
          java,
        
        
          final,
          
            score: 
              
                100
              
              
          
          
        
      
      
      
      
    
                1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556
              
            
            // you can also use imports, for example:
import java.util.Arrays;
// you can use System.out.println for debugging purposes, e.g.
// System.out.println("this is a debug message");
class Solution {
    public int solution(int[] A) {
        
        int[] maxes = {Integer.MIN_VALUE, Integer.MIN_VALUE, Integer.MIN_VALUE};
        // Invariant: maxes[0] <= maxes[1] <= maxes[2]
        
        int[] mins = {Integer.MAX_VALUE, Integer.MAX_VALUE};
        // Invariant: mins[0] <= mins[1]
        // O(n)        
        for( int a : A )
        {
            updateMaxes( a, maxes );
            updateMins( a, mins );
        }
 
        System.out.println(Arrays.toString(maxes));
        System.out.println(Arrays.toString(mins));
        
        int obvious = maxes[0] * maxes[1] * maxes[2];
        int twoBigNegs = mins[0] * mins[1] * maxes[2];
        return Math.max( obvious, twoBigNegs );
    }
    
    private static void updateMaxes( int a, int[] maxes )
    {
        if( a >= maxes[2] ) {
            // Found new max, shift down
            maxes[0] = maxes[1];
            maxes[1] = maxes[2];
            maxes[2] = a;
        } else if( a >= maxes[1] ) {
            maxes[0] = maxes[1];
            maxes[1] = a;
        } else if( a > maxes[0] ) {
            maxes[0] = a;
        }
    }
    private static void updateMins( int a, int[] mins )
    {
        if( a <= mins[0] ) {
            // Found new min, shift down
            mins[1] = mins[0];
            mins[0] = a;
        } else if( a < mins[1] ) {
            mins[1] = a;
        }
    }
}Analysis summary
            
  The solution obtained perfect score.
          Analysis 
          
            
          
        
        
          
  
    
      Detected time complexity:
        
          O(N * log(N))
        
        
      
        
          expand all 
        
        Example tests
      
      
        
        
                1.
              
              
              
                
                  1.512 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 5, 6] [-3, -2]
        
          expand all 
        
        Correctness tests
      
      
        
        
                1.
              
              
              
                
                  1.424 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [1000, 1000, 1000] [1000, 1000]
                1.
              
              
              
                
                  1.456 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [1, 4, 5] [0, 1]
                1.
              
              
              
                
                  1.468 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [2, 3, 100] [-1000, 2]
                1.
              
              
              
                
                  1.464 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [974, 993, 997] [-981, -965]
        
          expand all 
        
        Performance tests
      
      
        
        
                1.
              
              
              
                
                  1.500 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [998, 999, 1000] [-1000, -999]
                1.
              
              
              
                
                  1.504 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [1000, 1000, 1000] [-1000, -1000]
                1.
              
              
              
                
                  1.680 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [1000, 1000, 1000] [-1000, -1000]
                1.
              
              
              
                
                  1.448 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [10, 10, 500] [-1000, -10]
                1.
              
              
              
                
                  1.748 s
                
              
              
              
                
                  OK
                
                
              
            
                    
                    
                      stdout:
                      
                WARNING: producing output may seriously slow down your code! [-1000, -1000, -1000] [-1000, -1000]