// 가중치 범위를 훑어나가며 경로가 존재하는 가중치 범위의 최소 크기를 찾는다.
int scanning() {
  int lo = 0, hi = 0, ret = INF;
  while(lo < weights.size() && hi < weights.size()) {
    if(hasPath(weights[lo], weights[hi])) {
      ret = min(ret, weights[hi] - weights[lo]);
      ++lo;
    }
    else {
      ++hi;
    }
  }
  return ret;
}