249062026-02-16 17:45:30algoproFagyasztópypy3Elfogadva 75/7589ms22348 KiB
# UUID: 5fc5f58a-096d-4d9f-9d35-cb739f2765e1
import sys
input = sys.stdin.readline

def solve():
    n = int(input())
    a = []
    for i in range(n):
        x, y = [int(x) for x in input().split()]
        if y < 4: continue
        if y == 4: a.append((x, False, i+1))
        else: a.append((x, True, i+1))
    n = len(a)
    a.sort(reverse = True)
    l, r = 0, n
    while l < r-1:
        mid = (l+r) // 2
        cnt0, cnt1 = 0, 0
        i = 0
        t = 1
        while i < n and a[i][0] >= mid:
            if a[i][1]: cnt1 += 1
            else: cnt0 += 1
            i += 1
        for j in range(mid, 0, -1):
            while i < n and a[i][0] >= j:
                if a[i][1]: cnt1 += 1
                else: cnt0 += 1
                i += 1
            if cnt0:
                cnt0 -= 1
                if cnt1: cnt1 -= 1
                else:
                    t = 0
                    break
            else:
                if cnt1 >= 2: cnt1 -= 2
                else:
                    t = 0
                    break
        if t: l = mid
        else: r = mid
    print(l)
    ans0, ans1 = [], []
    i0, i1 = 0, 0
    i = 0
    ans = []
    while i < n and a[i][0] >= l:
        if a[i][1]: ans1.append(a[i][2])
        else: ans0.append(a[i][2])
        i += 1
    for j in range(l, 0, -1):
        while i < n and a[i][0] >= j:
            if a[i][1]: ans1.append(a[i][2])
            else: ans0.append(a[i][2])
            i += 1
        if len(ans0) > i0:
            ans.append((ans0[i0], ans1[i1]))
            i0 += 1
            i1 += 1
        else:
            ans.append((ans1[i1], ans1[i1+1]))
            i1 += 2
    ans.reverse()
    for u in ans: print(*u)

solve()
RészfeladatÖsszpontTesztVerdiktIdőMemória
subtask10/0
1Elfogadva39ms19688 KiB
subtask210/10
2Elfogadva39ms19796 KiB
3Elfogadva39ms19684 KiB
4Elfogadva45ms19860 KiB
5Elfogadva43ms19760 KiB
6Elfogadva48ms19656 KiB
7Elfogadva39ms19880 KiB
8Elfogadva46ms19632 KiB
9Elfogadva39ms19760 KiB
10Elfogadva39ms19672 KiB
11Elfogadva39ms19688 KiB
subtask320/20
12Elfogadva39ms19692 KiB
13Elfogadva46ms19676 KiB
14Elfogadva43ms19876 KiB
15Elfogadva39ms19888 KiB
16Elfogadva39ms19692 KiB
17Elfogadva50ms21048 KiB
18Elfogadva45ms21220 KiB
19Elfogadva48ms21040 KiB
20Elfogadva45ms21228 KiB
21Elfogadva56ms21536 KiB
22Elfogadva48ms21188 KiB
23Elfogadva71ms21996 KiB
24Elfogadva67ms21992 KiB
25Elfogadva68ms22092 KiB
26Elfogadva43ms21168 KiB
27Elfogadva76ms21924 KiB
28Elfogadva76ms22100 KiB
29Elfogadva52ms21248 KiB
30Elfogadva63ms21992 KiB
31Elfogadva75ms22012 KiB
subtask415/15
32Elfogadva43ms19856 KiB
33Elfogadva43ms20040 KiB
34Elfogadva39ms19656 KiB
35Elfogadva45ms21168 KiB
36Elfogadva54ms21448 KiB
37Elfogadva61ms21504 KiB
38Elfogadva48ms21172 KiB
39Elfogadva43ms21036 KiB
40Elfogadva54ms21480 KiB
41Elfogadva61ms22032 KiB
42Elfogadva57ms21732 KiB
43Elfogadva63ms21840 KiB
44Elfogadva43ms21268 KiB
45Elfogadva54ms21416 KiB
46Elfogadva75ms22304 KiB
subtask515/15
47Elfogadva45ms21364 KiB
48Elfogadva52ms21216 KiB
49Elfogadva46ms21212 KiB
50Elfogadva48ms21136 KiB
51Elfogadva52ms21180 KiB
52Elfogadva50ms21180 KiB
53Elfogadva48ms21232 KiB
54Elfogadva46ms21212 KiB
55Elfogadva41ms19864 KiB
56Elfogadva59ms21548 KiB
57Elfogadva46ms21100 KiB
58Elfogadva48ms21160 KiB
59Elfogadva46ms21228 KiB
60Elfogadva41ms21228 KiB
61Elfogadva48ms21228 KiB
subtask615/15
62Elfogadva50ms21476 KiB
63Elfogadva52ms21420 KiB
64Elfogadva71ms21808 KiB
65Elfogadva89ms22348 KiB
66Elfogadva87ms22296 KiB
67Elfogadva45ms21048 KiB
68Elfogadva52ms21456 KiB
69Elfogadva54ms21228 KiB
70Elfogadva57ms21480 KiB
71Elfogadva74ms22088 KiB
72Elfogadva50ms21512 KiB
73Elfogadva74ms21992 KiB
74Elfogadva75ms21992 KiB
75Elfogadva50ms21468 KiB
76Elfogadva43ms21072 KiB