integer::N,i,start=10**8,kankaku integer,allocatable::x(:) integer::zahyou(0:10**8) data zahyou/100000001*0/ read *, N allocate(x(N)) read *, x do i=1,N if(zahyou(x(i)).eq.1) then print '(a)', "NO" return end if zahyou(x(i)) = 1 start = MIN(start, x(i)) end do do i=start+1,10**8 if(zahyou(i).eq.1) then kankaku = i - start exit end if end do do i=start, start+(N-1)*kankaku, kankaku if(zahyou(i).ne.1) then print '(a)', "NO" return end if end do print '(a)', "YES" end program