CSES - HIIT Open 2016 - Results
Submission details
Task:Graph painting
Sender:Verto
Submission time:2016-05-28 13:09:34 +0300
Language:Python2
Status:READY
Result:
Test results
testverdicttime
#1ACCEPTED0.06 sdetails
#2ACCEPTED0.05 sdetails
#3--details

Code

import sys
def asints(s):
	return [int(x.strip()) for x in s.split()]
def asoneint(s):
	return int(s.strip())
lines = sys.stdin.readlines()


class Node:
	def __init__(self, name):
		self.name = name
		self.neighbors = []
		self.color = None
	def connect(self, other):
		self.neighbors.append(other)
		other.neighbors.append(self)
	def debug(self):
		print "{}: {}".format(self.name, [x.name for x in self.neighbors])

t = asoneint(lines[0])
linei = 1
for testi in range(t):
	nodes = {}
	n, m = asints(lines[linei])
	linei += 1
	for i in range(1, n+1):
		nodes[i] = Node(i)
	for i in range(m):
		a, b = asints(lines[linei])
		linei += 1
		nodes[a].connect(nodes[b])
	#for node in nodes.values():
	#	node.debug()
	#print
	for node in nodes.values():
		n_red = 0
		n_blue = 0
		for neigh in node.neighbors:
			if neigh.color is None:
				continue
			elif neigh.color == 'R':
				n_red += 1
			else:
				n_blue += 1
		if n_red > n_blue:
			node.color = 'B'
		else:
			node.color = 'R'
	for node in sorted(nodes.values(), key=lambda x:x.name):
		print node.color,
	print


Test details

Test 1

Verdict: ACCEPTED

input
100
7 1
2 5
8 28
2 7
...

correct output
B R B B B B R 
R B B R B R B B 
R R B B B B R R R B 
B B R B R B 
B B B R B R R B R 
...

user output
R R R R B R R
R B R B R B R B
R B R B R R R R B R
R B R B R B
R B B R R R B B R
...

Test 2

Verdict: ACCEPTED

input
10
38 36
18 28
20 37
22 38
...

correct output
R R B R B R R R R R B B R B R ...

user output
R R R R R R R R R R B R R R R ...

Test 3

Verdict:

input
1
100000 200000
89300 98492
33853 56822
92967 99427
...

correct output
R R R R B R R R B B B R B B B ...

user output
(empty)