aoc_omni/fortran/2015/1/problem.f90
2023-12-18 08:29:45 -05:00

37 lines
824 B
Fortran

program problem
implicit none
integer :: floor = 0
integer :: steps = 0
character(len=:), allocatable :: input
integer :: input_file_size, unit, i
open(newunit=unit, file='../data/2015/1/input.txt', access="stream")
inquire(unit=unit, size=input_file_size)
allocate(character(len=input_file_size) :: input)
read(unit) input
do i=1, input_file_size
if (input(i:i) == "(") then
floor = floor + 1
else
floor = floor - 1
end if
end do
print *, "Part 1: ", floor
floor = 0
do i=1, input_file_size
if (input(i:i) == "(") then
floor = floor + 1
else
floor = floor - 1
end if
steps = steps + 1
if (floor < 0) exit
end do
print *, "Part 2: ", steps
close(1)
end program problem