program main implicit none integer n,m,i integer,allocatable,dimension(:,:)::a integer,allocatable,dimension(:)::x,y read(*,*)n,m allocate(a(m,m)) allocate(y(n),x(n)) do i=1,m read(*,*)a(i,1:m) enddo do i=1,n read(*,*)x(i),y(i) enddo do i=1,n call hantei(x(i),y(i)) enddo contains subroutine hantei(x,y) integer,intent(in)::x,y integer ::i,j,counter counter=0 do i=1,x-1 do j=1,y-1 if(sum(a(i:x,j:y))==0)counter=counter+1 enddo do j=y,m if(sum(a(i:x,y:j))==0)counter=counter+1 enddo enddo do i=x,m do j=1,y-1 if(sum(a(x:i,j:y))==0)counter=counter+1 enddo do j=y,m if(sum(a(x:i,y:j))==0)counter=counter+1 enddo enddo write(*,*)counter end subroutine hantei end program main