Submission #1164372


Source Code Expand

import copy

def traverse(N,A,mm):
	if N<2 or len(A)!=N+1 or len(mm)!=N-1:
		return(False)
	m=copy.deepcopy(mm)
	t=[]
	rp=[]
	c=[]
	for i in range(N+1):
		t.extend([0])
		rp.extend([0])
		c.extend([[0]])
	
	start=1
	for i in range(start,N+1):
		#if len(m[i])==1 and A[i]>0:
		if A[i]>0:
			root=i
			break
	
	eerror=False
	if len(m[root]) in [0,1]:
		t[root]=A[root]
	else:
		t[root]=2*A[root]
	
	r=0
	i=root
	while not(i==root and len(m[i])==0):
		#print(i,t[i],m[i],rp[i])
		
		if len(m[i])==0:
			#print('back')
			c[i][0]=t[i]
			r=i
			i=rp[i]
			#print(i,t[i],m[i],rp[i])
			t[i]-=t[r]
			c[i].extend([t[r]])
			#print('minus')
			#print(c)
			if t[i]<0:
				return(False)
				#eerror=True
				#break
		else:
			#print('forward')
			r=i
			i=m[i].pop()
			if rp[i]==0:
				rp[i]=r
			#print(i,t[i],m[i],rp[i])	
			if len(m[i]) in [0,1]:
				t[i]=A[i]
			else:
				t[i]=2*A[i]
			#print('plus')
			#print(i,t[i],m[i],rp[i])
			if r in m[i]:
				m[i].remove(r)
				#print('remove')
		
	
	for cc in c[1:]:
		cc_max=cc.index(max(cc))
		if len(cc)>2 and cc[cc_max]>sum([cc[i] for i in range(len(cc)) if i!=cc_max]):
			return(False)
			
	if t[root]==0 and eerror==False:
		return(True)
	else:
		return(False)
		
		
N= int(input())
A=[0]
for x in input().split():
	A.extend([int(x)])
	
m=[]

for i in range(N+1):
	m.extend([[]])

for i in range(N-1):
	l=[int(xx) for xx in input().split()]
	#l=[int(xx) for xx in L.pop()]
	if 0<l[0]<=N and 0<l[1]<=N:
		m[l[0]]+=[l[1]]
		m[l[1]]+=[l[0]]

		
if traverse(N,A,m):
	print('YES')
else:
	print('NO')
	

Submission Info

Submission Time
Task C - Cleaning
User Pgmto70
Language Python (3.4.3)
Score 0
Code Size 1642 Byte
Status WA
Exec Time 560 ms
Memory 25904 KB

Judge Result

Set Name Sample All
Score / Max Score 0 / 0 0 / 700
Status
AC × 1
WA × 2
AC × 29
WA × 22
Set Name Test Cases
Sample sample1.txt, sample2.txt, sample3.txt
All sample1.txt, sample2.txt, sample3.txt, in1.txt, in10.txt, in11.txt, in12.txt, in13.txt, in14.txt, in15.txt, in16.txt, in17.txt, in18.txt, in19.txt, in2.txt, in20.txt, in21.txt, in22.txt, in23.txt, in24.txt, in25.txt, in26.txt, in27.txt, in28.txt, in29.txt, in3.txt, in30.txt, in31.txt, in32.txt, in33.txt, in34.txt, in35.txt, in36.txt, in37.txt, in38.txt, in39.txt, in4.txt, in40.txt, in41.txt, in42.txt, in43.txt, in44.txt, in45.txt, in5.txt, in6.txt, in7.txt, in8.txt, in9.txt, sample1.txt, sample2.txt, sample3.txt
Case Name Status Exec Time Memory
in1.txt WA 548 ms 25840 KB
in10.txt WA 529 ms 25760 KB
in11.txt WA 537 ms 25620 KB
in12.txt WA 528 ms 25632 KB
in13.txt WA 524 ms 22432 KB
in14.txt WA 509 ms 22432 KB
in15.txt WA 23 ms 3444 KB
in16.txt AC 23 ms 3444 KB
in17.txt WA 23 ms 3444 KB
in18.txt AC 23 ms 3444 KB
in19.txt AC 541 ms 25760 KB
in2.txt WA 551 ms 25756 KB
in20.txt AC 542 ms 25796 KB
in21.txt AC 523 ms 25796 KB
in22.txt AC 557 ms 25760 KB
in23.txt AC 542 ms 25760 KB
in24.txt AC 560 ms 25760 KB
in25.txt AC 22 ms 3444 KB
in26.txt AC 550 ms 25904 KB
in27.txt AC 550 ms 25904 KB
in28.txt AC 23 ms 3444 KB
in29.txt AC 527 ms 22660 KB
in3.txt WA 547 ms 25760 KB
in30.txt AC 23 ms 3444 KB
in31.txt AC 534 ms 25752 KB
in32.txt AC 548 ms 25760 KB
in33.txt WA 534 ms 25760 KB
in34.txt WA 554 ms 25760 KB
in35.txt AC 550 ms 25756 KB
in36.txt AC 537 ms 25760 KB
in37.txt AC 27 ms 3692 KB
in38.txt AC 558 ms 25760 KB
in39.txt AC 545 ms 25756 KB
in4.txt WA 557 ms 25760 KB
in40.txt AC 546 ms 25756 KB
in41.txt AC 544 ms 25760 KB
in42.txt AC 538 ms 25760 KB
in43.txt AC 559 ms 25760 KB
in44.txt AC 559 ms 25760 KB
in45.txt AC 543 ms 25760 KB
in5.txt WA 544 ms 25760 KB
in6.txt WA 539 ms 25756 KB
in7.txt WA 489 ms 23340 KB
in8.txt WA 134 ms 8668 KB
in9.txt WA 544 ms 25760 KB
sample1.txt WA 23 ms 3444 KB
sample2.txt AC 23 ms 3444 KB
sample3.txt WA 23 ms 3444 KB