question: private void addFinal ( Object [ ] stacks ) { Object [ ] input = new Object [ inputSize ] , output = new Object [ outputSize ] ; for ( int i = 0 ; i < stacks . length ; i ++ ) { if ( i < inputSize ) { input [ i ] = stacks [ i ] ; } else if ( ! ( i - inputSize > outputSize ) ) { output [ i - inputSize ] = stacks [ i ] ; } else { throw new RuntimeException ( "Recipe is too big!" ) ; } } addRecipe ( input , output ) ; }
target:  separates the recipe into an input and output list 