# Challenge 086

## Table of Contents

## Task 1 - Pair Difference

You are given an array of integers @N and an integer $A.

Write a script to find find if there exists a pair of elements in the array whose difference is $A.

Print 1 if exists otherwise 0.

### Perl

- Program: perl/ch-1.pl

@N & $A are taken from stdin, $A is the last argument.

die "usage: ./ch-1.pl <integers \@N> <integer \$A>\n" unless scalar @ARGV >= 3; my $A = pop @ARGV; my @N = @ARGV;

We just loop over @N over a loop over @N & find the difference. If it's
equal to `$A`

or `-$A`

then we print `1`

& exit. The first loop is `shift`

'ing
the numbers out of array `@N`

because we are matching for both `$A`

& `-$A`

so
we don't need the number again.

For example, if `@N = [1, 2]`

& we don't `shift`

in first loop then we'll
perform 2 subtraction operations: `1 - 2`

& `2 - 1`

& we won't have to match
for `-$A`

but if we just match for `-$A`

then we can use `shift`

& we'll only
have to perform 1 subtraction operation `1 - 2`

.

We assume subtraction costs more than matching with `-$A`

, that makes this
more efficient. But it doesn't matter much.

while (my $int = shift @N) { foreach (@N) { my $diff = $int - $_; print "1\n" and exit 0 if ($diff == $A or $diff == -$A); } } print "0\n";