| 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 | ||||