247302026-02-14 21:13:07algoproFagyasztópypy3Wrong answer 15/7585ms22416 KiB
# UUID: 9433dce0-f1a4-4cc3-8c22-f8519b4c5499
from sys import stdin, setrecursionlimit
input = stdin.readline
setrecursionlimit(10**6)

N = int(input())
negy=[]
ot=[]
for i in range(1,N+1):
    S, M = map(int,input().split())
    if M==4: 
        negy.append((S,i))
    elif M>4:
        ot.append((S,i))

negy.sort()
ot.sort()

def test(k, pr=False):
    i=j=0
    for day in range(k):
        while i < len(negy) and negy[i][0] < day:
            i += 1
        while j < len(ot) and ot[j][0] < day:
            j += 1
        if i < len(negy):
            if j < len(ot):
                if pr:
                    print(negy[i][1], ot[j][1])
                i += 1
                j += 1
            else:
                return False
        else:
            if j+1 < len(ot):
                if pr:
                    print(ot[j][1], ot[j+1][1])
                j+=2
            else:
                return False
    return True

lo = 0
hi = 2000
while hi-lo > 1:
    mid = (hi+lo)//2
    if test(mid):
        lo = mid
    else:
        hi = mid
print(lo)
test(lo,True)
SubtaskSumTestVerdictTimeMemory
subtask10/0
1Accepted39ms19688 KiB
subtask20/10
2Wrong answer43ms19660 KiB
3Accepted43ms19604 KiB
4Wrong answer39ms19668 KiB
5Accepted39ms19652 KiB
6Accepted39ms19676 KiB
7Accepted45ms19616 KiB
8Accepted43ms19720 KiB
9Accepted39ms19680 KiB
10Accepted39ms19884 KiB
11Accepted39ms19680 KiB
subtask30/20
12Accepted39ms19608 KiB
13Accepted46ms19748 KiB
14Accepted39ms19632 KiB
15Accepted43ms19548 KiB
16Accepted45ms19708 KiB
17Wrong answer52ms21668 KiB
18Accepted50ms21396 KiB
19Wrong answer48ms21216 KiB
20Wrong answer50ms21468 KiB
21Wrong answer61ms21724 KiB
22Wrong answer48ms21140 KiB
23Accepted64ms21716 KiB
24Accepted71ms21632 KiB
25Wrong answer61ms21772 KiB
26Wrong answer48ms21480 KiB
27Wrong answer78ms22416 KiB
28Wrong answer72ms22264 KiB
29Accepted48ms21496 KiB
30Wrong answer67ms21728 KiB
31Wrong answer76ms22236 KiB
subtask415/15
32Accepted39ms19612 KiB
33Accepted39ms19664 KiB
34Accepted43ms19604 KiB
35Accepted48ms21060 KiB
36Accepted54ms21464 KiB
37Accepted59ms21468 KiB
38Accepted43ms21216 KiB
39Accepted39ms19948 KiB
40Accepted46ms21084 KiB
41Accepted57ms21724 KiB
42Accepted52ms21468 KiB
43Accepted72ms21716 KiB
44Accepted46ms19960 KiB
45Accepted52ms21348 KiB
46Accepted70ms22052 KiB
subtask50/15
47Wrong answer50ms21128 KiB
48Wrong answer50ms21452 KiB
49Wrong answer57ms21360 KiB
50Wrong answer43ms21080 KiB
51Accepted57ms21464 KiB
52Wrong answer43ms21136 KiB
53Wrong answer43ms21216 KiB
54Accepted48ms21420 KiB
55Accepted39ms19692 KiB
56Accepted50ms21536 KiB
57Wrong answer50ms21268 KiB
58Wrong answer43ms21128 KiB
59Accepted52ms21456 KiB
60Wrong answer41ms21136 KiB
61Accepted45ms19904 KiB
subtask60/15
62Wrong answer50ms21164 KiB
63Wrong answer57ms21480 KiB
64Wrong answer63ms21696 KiB
65Accepted68ms21988 KiB
66Accepted85ms21928 KiB
67Wrong answer43ms21188 KiB
68Wrong answer61ms21528 KiB
69Accepted50ms21468 KiB
70Wrong answer52ms21468 KiB
71Wrong answer78ms22060 KiB
72Accepted57ms21464 KiB
73Wrong answer65ms21640 KiB
74Wrong answer63ms21928 KiB
75Wrong answer52ms21468 KiB
76Wrong answer50ms21220 KiB