program main implicit none integer::T,len,i,j,k,m,diff,minimum character*100::S read *,T do i=1,T read *,S len = LEN_TRIM(S) minimum = 11 do j=1,len-10 do k=j+4,len-6 minimum = MIN(minimum, get_diff(S(j:j+3),S(k:k+6))) end do end do print '(i0)',minimum end do contains function get_diff(Sg,Sp) result(diff) character*4::Sg character*7::Sp character*4,parameter::good="good" character*7,parameter::problem="problem" integer::diff,m diff = 0 do m=1,4 if(good(m:m).ne.Sg(m:m)) diff = diff + 1 end do do m=1,7 if(problem(m:m).ne.Sp(m:m)) diff = diff + 1 end do end function get_diff end program main