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 |
|
|
| 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 |