Submission #809169

# Submission time Handle Problem Language Result Execution time Memory
809169 2023-08-05T19:50:44 Z jackliy369 A Huge Tower (CEOI10_tower) Python 3
0 / 100
1000 ms 73016 KB
N, D = map(int, input().split())
blocks = sorted(list(map(int, input().split())))

def binary_search_i(l, r, size, list):
    ans = r + 1
    while r >= l:
        m = (l + r) // 2
        # m = l + floor(log10(r - l + 1))
        # m = l + (r - l) // 1000000
        if size <= list[m] + D:
            r = m - 1
            ans = m
        else:
            l = m + 1
    return ans

def binary_search_j(l, r, size, list):
    ans = r + 1
    while r >= l:
        m = (l + r) // 2
        if list[m] > size + D:
            r = m - 1
            ans = list[m]
        else:
            l = m + 1
    return ans

ans = 1
i = 0
j = 1
while j < N:
    prev_j = j
    # while i < j and blocks[j] > blocks[i] + D:
    #     i += 1
    i = binary_search_i(i, j - 1, blocks[j], blocks)
    j = binary_search_j(prev_j, N - 1, blocks[i], blocks)
    for k in range(prev_j, j):
        ans *= k - i + 1
    

print(ans % 1000000009)
# Verdict Execution time Memory Grader output
1 Incorrect 11 ms 2900 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 10 ms 2912 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 13 ms 2904 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 11 ms 2900 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 14 ms 2900 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 11 ms 2912 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Incorrect 11 ms 2812 KB Output isn't correct
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1037 ms 4160 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1064 ms 3256 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1079 ms 3252 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1075 ms 4212 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1061 ms 3260 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1058 ms 3396 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1061 ms 3260 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1059 ms 3456 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1069 ms 3604 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1056 ms 4552 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1056 ms 8448 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1037 ms 30708 KB Time limit exceeded
2 Halted 0 ms 0 KB -
# Verdict Execution time Memory Grader output
1 Execution timed out 1068 ms 73016 KB Time limit exceeded
2 Halted 0 ms 0 KB -