program main implicit none integer*8::N,i integer*8::a(16),m,l,mt,lt data a/16*0/ read *,N read *,a(1:N) m = a(1) l = a(1) do i=2,N if(a(i).ne.0) then mt = MAX(MAX(m*a(i),MAX(m-a(i),MAX(m+a(i),m/a(i)))), & MAX(l*a(i),MAX(l-a(i),MAX(l+a(i),l/a(i))))) lt = MIN(MIN(m*a(i),MIN(m-a(i),MIN(m+a(i),m/a(i)))), & MIN(l*a(i),MIN(l-a(i),MIN(l+a(i),l/a(i))))) else mt = MAX(MAX(m*a(i),MAX(m-a(i),m+a(i))), & MAX(l*a(i),MAX(l-a(i),l+a(i)))) lt = MIN(MIN(m*a(i),MIN(m-a(i),m+a(i))), & MIN(l*a(i),MIN(l-a(i),l+a(i)))) end if m = mt l = lt end do print '(i0)',m contains subroutine aprinter(array) integer::array(:) character*32::cformat='(i0, (1x,i0))' write(cformat(5:9),'(i0)'),size(array) write(*,cformat) array end subroutine aprinter end program main