Submission #1178905

#TimeUsernameProblemLanguageResultExecution timeMemory
1178905sosukeA Huge Tower (CEOI10_tower)Pypy 3
100 / 100
338 ms157192 KiB
MOD = 10**9 + 9

n, d = map(int, input().split())
blocks = list(map(int, input().split()))

blocks.sort()  # sort the blocks

right = 0
res = 1
for left in range(n):
	while right < n - 1 and blocks[right + 1] - blocks[left] <= d:
		right += 1

	# largest tower we can built when blocks[left] block is the base
	dist = right - left + 1
	res = (res * dist) % MOD

print(res)

Compilation message (stdout)

Compiling 'tower.py'...

=======
  adding: __main__.pyc (deflated 21%)

=======
#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...