# | 제출 시각 | 아이디 | 문제 | 언어 | 결과 | 실행 시간 | 메모리 |
---|---|---|---|---|---|---|---|
927539 | ay136416 | A Huge Tower (CEOI10_tower) | Java | 0 ms | 0 KiB |
이 제출은 이전 버전의 oj.uz에서 채점하였습니다. 현재는 제출 당시와는 다른 서버에서 채점을 하기 때문에, 다시 제출하면 결과가 달라질 수도 있습니다.
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.util.*;
public class Towers {
final static long MOD = 1_000_000_009;
public static void main(String[] args) throws IOException {
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String[] tokens = br.readLine().split(" ");
final int N = Integer.parseInt(tokens[0]);
final int D = Integer.parseInt(tokens[1]);
int[] blocks = new int[N];
tokens = br.readLine().split(" ");
for (int i = 0; i<N; i++) {
blocks[i]=Integer.parseInt(tokens[i]);
}
Arrays.sort(blocks);
long ans = 1;
int right = 0;
for (int left = 0; left<N; left++) {
while (right<N-1 && blocks[right+1]-blocks[left]<=D)
right++;
ans *= (right-left+1);
ans %= MOD;
}
System.out.println(ans);
}
}