11764 | 2024-11-09 16:42:16 | balint | Sokszorozott maximumok | python3 | Időlimit túllépés 11/100 | 2.101s | 26924 KiB |
import heapq
from functools import reduce
def product_of_k_largest(numbers, k):
# Use a min-heap to store the k largest elements
min_heap = []
for num in numbers:
# Push the current number onto the heap
heapq.heappush(min_heap, num)
# If the heap grows beyond size k, remove the smallest element
if len(min_heap) > k:
heapq.heappop(min_heap)
# Compute the product of the k largest elements
return reduce(lambda x, y: x * y, min_heap, 1)
def main():
MOD = 10**9 + 7
N, Q = map(int, input().split())
nums = list(map(int, input().split()))
for _ in range(Q):
L, R, k = map(int, input().split())
sub = nums[L : R + 1]
mul = product_of_k_largest(sub, k) # prod(sorted(sub, reverse=True)[:k])
print(mul % MOD)
main()
Részfeladat | Összpont | Teszt | Verdikt | Idő | Memória | ||
---|---|---|---|---|---|---|---|
subtask1 | 0/0 | ||||||
1 | Elfogadva | 21ms | 3640 KiB | ||||
subtask2 | 11/11 | ||||||
2 | Elfogadva | 39ms | 3640 KiB | ||||
3 | Elfogadva | 43ms | 3660 KiB | ||||
4 | Elfogadva | 280ms | 3800 KiB | ||||
5 | Elfogadva | 717ms | 3896 KiB | ||||
6 | Elfogadva | 21ms | 3644 KiB | ||||
7 | Elfogadva | 185ms | 3724 KiB | ||||
subtask3 | 0/13 | ||||||
8 | Elfogadva | 35ms | 3640 KiB | ||||
9 | Elfogadva | 41ms | 3708 KiB | ||||
10 | Elfogadva | 287ms | 3892 KiB | ||||
11 | Időlimit túllépés | 2.076s | 14556 KiB | ||||
12 | Időlimit túllépés | 2.079s | 26696 KiB | ||||
13 | Időlimit túllépés | 2.101s | 26756 KiB | ||||
subtask4 | 0/19 | ||||||
14 | Időlimit túllépés | 2.082s | 22088 KiB | ||||
15 | Időlimit túllépés | 2.081s | 24516 KiB | ||||
16 | Időlimit túllépés | 2.082s | 25612 KiB | ||||
17 | Időlimit túllépés | 2.082s | 26700 KiB | ||||
18 | Időlimit túllépés | 2.078s | 26924 KiB | ||||
subtask5 | 0/25 | ||||||
19 | Időlimit túllépés | 2.082s | 9252 KiB | ||||
20 | Időlimit túllépés | 2.084s | 8332 KiB | ||||
21 | Időlimit túllépés | 2.082s | 8708 KiB | ||||
22 | Időlimit túllépés | 2.082s | 9728 KiB | ||||
23 | Időlimit túllépés | 2.086s | 6464 KiB | ||||
subtask6 | 0/32 | ||||||
24 | Időlimit túllépés | 2.082s | 26700 KiB | ||||
25 | Időlimit túllépés | 2.082s | 26700 KiB | ||||
26 | Időlimit túllépés | 2.081s | 22096 KiB | ||||
27 | Időlimit túllépés | 2.081s | 24408 KiB | ||||
28 | Időlimit túllépés | 2.081s | 25748 KiB | ||||
29 | Időlimit túllépés | 2.081s | 26704 KiB | ||||
30 | Időlimit túllépés | 2.082s | 23792 KiB |