제출 #1097926

#제출 시각아이디문제언어결과실행 시간메모리
1097926sosukeA Huge Tower (CEOI10_tower)Pypy 3
100 / 100
249 ms110220 KiB
MOD = 10**9 + 9

n, d = map(int, input().split())
ar = list(map(int, input().split()))
ar.sort()  # sort the blocks
r = 0
sol = 1
for l in range(n):
    while r < n - 1 and ar[r + 1] - ar[l] <= d:
        r += 1
    dist = r - l + 1  # largest tower we can build when ar[l] block is the base
    sol = (sol * dist) % MOD
    
print(sol)
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...
#Verdict Execution timeMemoryGrader output
Fetching results...