238292026-01-30 15:12:13vyrallMegrendelésekpypy3Accepted 50/50112ms24456 KiB
from operator import itemgetter

n, m ,k = map(int, input().split())
orders = list(map(int, input().split()))
indexes = list(range(1, m+1))
indexes, orders = zip(*sorted(zip(indexes, orders), key=itemgetter(1)))
indexes, orders = list(indexes), list(orders)
chosen = []
p, l_ord = 0, len(orders)

for i in range(1, n+1):
    for _ in range(k):
        if p < l_ord:
            pick_idx = indexes[p]
            chosen.append((pick_idx, i))
            p += 1
    if p < l_ord:
        while p < l_ord and orders[p] <= i:
            p += 1

print(len(chosen))
for i in chosen:
    print(i[0], i[1])
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted45ms19948 KiB
2Accepted89ms24296 KiB
subtask25/5
3Accepted41ms19932 KiB
4Accepted46ms19916 KiB
5Accepted46ms20004 KiB
6Accepted45ms21212 KiB
7Accepted43ms21224 KiB
subtask35/5
8Accepted43ms21312 KiB
9Accepted50ms21224 KiB
10Accepted46ms21248 KiB
11Accepted52ms21544 KiB
12Accepted61ms21760 KiB
subtask45/5
13Accepted46ms21248 KiB
14Accepted89ms23524 KiB
15Accepted75ms22740 KiB
16Accepted78ms22760 KiB
17Accepted83ms22500 KiB
subtask510/10
18Accepted46ms19916 KiB
19Accepted45ms21220 KiB
20Accepted70ms22264 KiB
21Accepted64ms21988 KiB
22Accepted61ms21480 KiB
23Accepted46ms21228 KiB
24Accepted65ms21840 KiB
25Accepted86ms22908 KiB
26Accepted76ms22796 KiB
27Accepted76ms22972 KiB
subtask625/25
28Accepted50ms21140 KiB
29Accepted43ms21248 KiB
30Accepted70ms21876 KiB
31Accepted87ms24284 KiB
32Accepted93ms24292 KiB
33Accepted82ms23324 KiB
34Accepted105ms24268 KiB
35Accepted112ms24068 KiB
36Accepted93ms24272 KiB
37Accepted96ms24296 KiB
38Accepted90ms23752 KiB
39Accepted64ms21924 KiB
40Accepted76ms22756 KiB
41Accepted85ms23268 KiB
42Accepted72ms21928 KiB
43Accepted97ms23632 KiB
44Accepted92ms24036 KiB
45Accepted79ms22736 KiB
46Accepted87ms22664 KiB
47Accepted82ms23284 KiB
48Accepted90ms24268 KiB
49Accepted108ms24268 KiB
50Accepted93ms24456 KiB
51Accepted105ms24392 KiB
52Accepted92ms24268 KiB