247312026-02-14 21:15:03algoproFagyasztópypy3Részben helyes 7.5/7571ms22096 KiB
# UUID: 7c22cd2b-5c5b-4c56-a407-d76eb3fbfa33
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)
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Részben helyes45ms19692 KiB
subtask20/10
2Hibás válasz45ms19668 KiB
3Részben helyes39ms19712 KiB
4Részben helyes39ms19644 KiB
5Részben helyes43ms19872 KiB
6Részben helyes39ms19688 KiB
7Részben helyes39ms19692 KiB
8Részben helyes43ms19732 KiB
9Részben helyes43ms19584 KiB
10Részben helyes39ms19648 KiB
11Részben helyes45ms19744 KiB
subtask30/20
12Részben helyes46ms19688 KiB
13Részben helyes39ms19640 KiB
14Részben helyes39ms19632 KiB
15Részben helyes43ms19684 KiB
16Részben helyes39ms19680 KiB
17Hibás válasz45ms21280 KiB
18Részben helyes54ms21468 KiB
19Hibás válasz46ms19936 KiB
20Hibás válasz48ms21468 KiB
21Részben helyes48ms21468 KiB
22Hibás válasz48ms21168 KiB
23Részben helyes63ms21516 KiB
24Részben helyes54ms21448 KiB
25Hibás válasz54ms21404 KiB
26Hibás válasz54ms21432 KiB
27Hibás válasz68ms21684 KiB
28Hibás válasz59ms21724 KiB
29Részben helyes54ms21480 KiB
30Hibás válasz59ms21720 KiB
31Hibás válasz68ms22096 KiB
subtask47.5/15
32Részben helyes39ms19692 KiB
33Részben helyes43ms19644 KiB
34Részben helyes39ms19620 KiB
35Részben helyes48ms21048 KiB
36Részben helyes50ms21456 KiB
37Részben helyes50ms21404 KiB
38Részben helyes48ms21032 KiB
39Részben helyes43ms19816 KiB
40Részben helyes45ms21272 KiB
41Részben helyes61ms21404 KiB
42Részben helyes52ms21432 KiB
43Részben helyes63ms21620 KiB
44Részben helyes39ms19688 KiB
45Részben helyes50ms21536 KiB
46Részben helyes64ms21980 KiB
subtask50/15
47Hibás válasz48ms21264 KiB
48Részben helyes56ms21380 KiB
49Részben helyes48ms21392 KiB
50Részben helyes43ms21188 KiB
51Részben helyes54ms21456 KiB
52Hibás válasz39ms19936 KiB
53Részben helyes43ms21196 KiB
54Részben helyes57ms21468 KiB
55Részben helyes45ms19732 KiB
56Részben helyes50ms21468 KiB
57Hibás válasz43ms21136 KiB
58Hibás válasz48ms21212 KiB
59Részben helyes57ms21556 KiB
60Hibás válasz43ms21140 KiB
61Részben helyes39ms19664 KiB
subtask60/15
62Hibás válasz48ms21244 KiB
63Hibás válasz61ms21680 KiB
64Hibás válasz57ms21668 KiB
65Részben helyes57ms21788 KiB
66Részben helyes71ms21724 KiB
67Hibás válasz43ms21216 KiB
68Hibás válasz61ms21436 KiB
69Részben helyes52ms21428 KiB
70Hibás válasz57ms21468 KiB
71Hibás válasz59ms21760 KiB
72Részben helyes48ms21460 KiB
73Hibás válasz61ms21548 KiB
74Hibás válasz59ms21464 KiB
75Részben helyes52ms21440 KiB
76Hibás válasz48ms21244 KiB