# j354. 積木對接 (Blocks)
## 題目連結: [j354](https://zerojudge.tw/ShowProblem?problemid=j354)
我遇到的困難是我會把變數搞混,因為我習慣幫變數取很短的名稱,像是這次我就把變數down和d搞混,花了一段時間才看出錯誤,之後的命名要在明確一點。然後我發現用 t= 0或1(True or False) 來判斷是否有對接蠻方便的。
```python=
n = int(input())
down = list(map(int,input().split()))
m = int(input())
up = list(map(int,input().split()))
d = []
u = []
for i in range(2*n+1):
if i % 2 == 0:
for j in range(down[i]):
d.append(1)
else:
for j in range(down[i]):
d.append(2)
for i in range(2*m-1):
if i % 2 == 0:
for j in range(up[i]):
u.append(2)
else:
for j in range(up[i]):
u.append(1)
for i in range(len(d)-len(u)+1):
t = 1
for j in range(len(u)):
if d[i+j]+u[j]>3:
t = 0
if t == 1:
print("YES")
break
if t == 0:
print("NO")
```