from collections import defaultdict as dd, deque
from heapq import heappush as PUSH, heappop as POP
import sys
def ri():
return int(input())
def rl():
return list(map(int, input().split()))
def bipartition(E):
''' E like {v: [a,b,c...]}
returns [], [] for non-bipartite graphs
else returns A, B
'''
chi = {}
stack = [1] chi[1] = 0
while stack:
u = stack.pop()
for v in E[u]:
if v not in chi:
chi[v] = 1 - chi[u]
stack.append(v)
elif chi[v] == chi[u]:
return [], []
A = []
B = []
for v, color in chi.items():
if color == 0:
A.append(v)
else:
B.append(v)
return A, B
def send(x, y):
print (x, y)
sys.stdout.flush()
def solve():
n, m = rl()
E = dd(list)
for _ in range(m):
u, v = rl()
E[u].append(v)
E[v].append(u)
A, B = bipartition(E)
if len(A) == 0:
print ("Alice")
sys.stdout.flush()
for _ in range(n):
send(1, 2)
ignored = rl()
else:
print ("Bob")
sys.stdout.flush()
Ai = 0 Bi = 0 for _ in range(n):
c1, c2 = rl()
if c1 > c2:
c1, c2 = c2, c1
if c1 == 1 and Ai < len(A):
send(A[Ai], 1)
Ai += 1
elif c1 == 1 and Ai == len(A):
send(B[Bi], c2) Bi += 1
elif c1 == 2 and Bi < len(B):
send(B[Bi], 2)
Bi += 1
else:
send(A[Ai], 3)
Ai += 1
t = ri()
for i in range(1, t + 1):
solve()
969. Pancake Sorting | 967. Numbers With Same Consecutive Differences |
957. Prison Cells After N Days | 946. Validate Stack Sequences |
921. Minimum Add to Make Parentheses Valid | 881. Boats to Save People |
497. Random Point in Non-overlapping Rectangles | 528. Random Pick with Weight |
470. Implement Rand10() Using Rand7() | 866. Prime Palindrome |
1516A - Tit for Tat | 622. Design Circular Queue |
814. Binary Tree Pruning | 791. Custom Sort String |
787. Cheapest Flights Within K Stops | 779. K-th Symbol in Grammar |
701. Insert into a Binary Search Tree | 429. N-ary Tree Level Order Traversal |
739. Daily Temperatures | 647. Palindromic Substrings |
583. Delete Operation for Two Strings | 518. Coin Change 2 |
516. Longest Palindromic Subsequence | 468. Validate IP Address |
450. Delete Node in a BST | 445. Add Two Numbers II |
442. Find All Duplicates in an Array | 437. Path Sum III |
436. Find Right Interval | 435. Non-overlapping Intervals |