처음에 문제 제대로 안 읽고서 n개 중에 2개 고르는 문제로 보고 조합 코드를 작성했다.
나중에 최소 거리만큼의 조합 수를 뽑는 문제여서 기저 조건에 해당 조건을 추가해줬다.
import java.io.*;
import java.util.*;
public class Main {
static int n, minDist, cnt;
static int[] town;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
StringTokenizer st;
n = Integer.parseInt(br.readLine());
st = new StringTokenizer(br.readLine());
town = new int[n];
minDist = Integer.MAX_VALUE;
for(int i=0; i<n; i++) {
town[i] = Integer.parseInt(st.nextToken());
if(i != 0) minDist = Math.min(minDist, town[i]-town[i-1]);
}
comb(new int[2], 0, 0);
System.out.println(cnt);
}
private static void comb(int[] pick, int idx, int p) {
if(p == pick.length) {
if(minDist == pick[1]-pick[0]) cnt++;
return;
}
if(idx == n) {
return;
}
for(int i=idx; i<n; i++) {
pick[p] = town[i];
comb(pick, i+1, p+1);
}
}
}