Submission #10163490


Source Code Expand

#!/usr/bin/env python3
import numpy as np

stdin = open(0)
data = np.fromstring(stdin.read(), np.int32, sep=' ')
N, M = data[:2]
AB = data[2:2 + N + N]
LR = data[2 + N + N:]
A = AB[::2]
B = AB[1::2]
L = LR[::2]
R = LR[1::2]

ind = np.argsort(A)
A = A[ind]
B = B[ind]

L = np.searchsorted(A, L, 'left').tolist()
R = (np.searchsorted(A, R, 'right')).tolist()
B = np.append(B, 0)
C = np.zeros(len(B), np.int64)
C[1:] = B[:-1] ^ B[1:]
C[0] = B[0]
C = C.tolist()

graph = [[] for _ in range(N + 1)]
for i, (l, r) in enumerate(zip(L, R)):
    if l < r:
        graph[l].append(r)
        graph[r].append(l)

order = []
parent = [0] * (N+1)
close = [0] * (N+1)
for v in range(N):
    if close[v]:
        continue
    stack = [v]
    order.append(v)
    parent[v] = -1
    close[v] = 1
    while stack:
        v = stack.pop()
        for w in graph[v]:
            if close[w]:
                continue
            stack.append(w)
            order.append(w)
            close[w] = 1
            parent[w] = v


E = []
failed = False
for v in order[::-1]:
    if C[v]:
        p = parent[v]
        if p == -1:
            failed = True
            break
        E.append((p, v))
        C[v] = 0
        C[p] ^= 1


if failed:
    print(-1)
else:
    I = {lr: i for i, lr in enumerate(zip(L, R),1)}
    answer = []
    for v, w in E:
        if v > w:
            v, w = w, v
        answer.append(I[(v, w)])
    answer.sort()
    print(len(answer))
    print(*answer)

Submission Info

Submission Time
Task F - Perils in Parallel
User maspy
Language Python (3.4.3)
Score 600
Code Size 1464 Byte
Status AC
Exec Time 871 ms
Memory 93968 KiB

Judge Result

Set Name Sample Subtask1
Score / Max Score 0 / 0 600 / 600
Status
AC × 4
AC × 27
Set Name Test Cases
Sample sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt
Subtask1 sample_01.txt, sample_02.txt, sample_03.txt, sample_04.txt, sub1_01.txt, sub1_02.txt, sub1_03.txt, sub1_04.txt, sub1_05.txt, sub1_06.txt, sub1_07.txt, sub1_08.txt, sub1_09.txt, sub1_10.txt, sub1_11.txt, sub1_12.txt, sub1_13.txt, sub1_14.txt, sub1_15.txt, sub1_16.txt, sub1_17.txt, sub1_18.txt, sub1_19.txt, sub1_20.txt, sub1_21.txt, sub1_22.txt, sub1_23.txt
Case Name Status Exec Time Memory
sample_01.txt AC 302 ms 21652 KiB
sample_02.txt AC 151 ms 12520 KiB
sample_03.txt AC 147 ms 12520 KiB
sample_04.txt AC 148 ms 12520 KiB
sub1_01.txt AC 722 ms 75792 KiB
sub1_02.txt AC 406 ms 43680 KiB
sub1_03.txt AC 261 ms 25624 KiB
sub1_04.txt AC 333 ms 33240 KiB
sub1_05.txt AC 205 ms 20680 KiB
sub1_06.txt AC 273 ms 28576 KiB
sub1_07.txt AC 327 ms 36548 KiB
sub1_08.txt AC 344 ms 26816 KiB
sub1_09.txt AC 465 ms 46152 KiB
sub1_10.txt AC 428 ms 48176 KiB
sub1_11.txt AC 198 ms 18152 KiB
sub1_12.txt AC 321 ms 41816 KiB
sub1_13.txt AC 370 ms 33208 KiB
sub1_14.txt AC 324 ms 32768 KiB
sub1_15.txt AC 338 ms 37416 KiB
sub1_16.txt AC 291 ms 28928 KiB
sub1_17.txt AC 169 ms 15220 KiB
sub1_18.txt AC 267 ms 29520 KiB
sub1_19.txt AC 245 ms 26152 KiB
sub1_20.txt AC 224 ms 20984 KiB
sub1_21.txt AC 871 ms 93968 KiB
sub1_22.txt AC 361 ms 38744 KiB
sub1_23.txt AC 168 ms 15464 KiB