#!/usr/bin/env awk BEGIN { FS = "[: ]" total = 0 } { sum = $1 num_opers = 2 num_of_nums = NF - 2 num_of_results = 1 # Create list of numbers # Create list of results for (i = 3; i <= NF; i++) { nums[i-2] = $i } results[1] = nums[1] # Starting applying additions to results # Starting from second number for (i = 2; i <= num_of_nums; i++) { number = nums[i] for (j = 1; j <= num_of_results; j++) { element = results[j] results[j+num_of_results] = element * number results[j] = results[j] + number } num_of_results *= num_opers } expected = ( num_of_nums - 1 ) * num_opers # Check results for (i=1; i <= num_of_results; i++) { if ( results[i] == $1 ) { start_val = i % num_of_nums stack_num = (i - start_val) / num_of_nums total = total + $1 break } } delete results delete nums } END { print total }