summaryrefslogtreecommitdiff
path: root/9/part1.f90
blob: a89ee41e9914850f0284dd02e5f032add6fb6511 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
integer function has_sum(arg, arr)
    implicit none

    integer, parameter :: arr_len = 25

    integer (kind=8) :: arg
    integer (kind=8), dimension(25) :: arr
    integer :: i, j

    do i = 1, arr_len
        do j = 1, arr_len
            if (arr(i) + arr(j) == arg) then
                has_sum = 1
                return
            end if
        end do
    end do

    has_sum = 0
    return
end function has_sum

program day9
    implicit none

    integer, parameter :: input_len = 1000

    integer :: has_sum, i, tmp
    integer (kind=8), dimension(input_len) :: input

    open(10, file='input', status='old')
    do i = 1, input_len
        read(10, *) input(i)
    end do
    close(10)

    do i = 26, input_len
        tmp = has_sum(input(i), input(i - 25))
        if (tmp == 0) then
            print *, input(i)
            stop
        end if
    end do

end program day9