program main integer,parameter::limit=100000 integer::N,i,sum,prev,mindist=limit+1 integer,allocatable::X(:) integer::Y(0:limit)=0 read *,N allocate(X(N)) read *,X do i=1,N Y(X(i))=Y(X(i))+1 end do do i=0,limit if(Y(i).ne.0) then sum = Y(i) prev =i exit end if end do if(sum .eq. N) then print '(i0)', 0 end if do i=prev+1, limit if(Y(i).ne.0) then mindist = MIN(mindist, i-prev) prev = i sum = sum + Y(i) if(sum.eq.N) exit continue end if end do if(mindist.eq.(limit+1)) mindist=0 print '(i0)', mindist end program main