Problem:


Score : 200 points

Problem Statement

We have a bingo card with a 3\times3 grid. The square at the i-th row from the top and the j-th column from the left contains the number A_{i, j}.

The MC will choose N numbers, b_1, b_2, \cdots, b_N. If our bingo sheet contains some of those numbers, we will mark them on our sheet.

Determine whether we will have a bingo when the N numbers are chosen, that is, the sheet will contain three marked numbers in a row, column, or diagonal.

Constraints

All values in input are integers.

1 \leq A_{i, j} \leq 100

A_{i_1, j_1} \neq A_{i_2, j_2} ((i_1, j_1) \neq (i_2, j_2))

1 \leq N \leq 10

1 \leq b_i \leq 100

b_i \neq b_j (i \neq j)

Input

Input is given from Standard Input in the following format:

A_{1, 1} A_{1, 2} A_{1, 3}
A_{2, 1} A_{2, 2} A_{2, 3}
A_{3, 1} A_{3, 2} A_{3, 3}
N
b_1
\vdots
b_N

Output

If we will have a bingo, print Yes; otherwise, print No.

Sample Input 1

84 97 66
79 89 11
61 59 7
7
89
7
87
79
24
84
30

Sample Output 1

Yes

We will mark A_{1, 1}, A_{2, 1}, A_{2, 2}, A_{3, 3}, and complete the diagonal from the top-left to the bottom-right.

Sample Input 2

41 7 46
26 89 2
78 92 8
5
6
45
16
57
17

Sample Output 2

No

We will mark nothing.

Sample Input 3

60 88 34
92 41 43
65 73 48
10
60
43
88
11
48
73
65
41
92
34

Sample Output 3

Yes

We will mark all the squares.



Sample input:
84 97 66
79 89 11
61 59 7
7
89
7
87
79
24
84
30


Sample output:
Yes

Submission status: Accepted

Solution code:
##入力
A1 = list(map(int,input().split()))
A2 = list(map(int,input().split()))
A3 = list(map(int,input().split()))
N = int(input())
b = [int(input()) for _ in range(N)]
##一致個所の確認
for i in range(3):
  for j in range(N):
    if A1[i] == b[j]:
      A1[i] = 0
for i in range(3):
  for j in range(N):
    if A2[i] == b[j]:
      A2[i] = 0
for i in range(3):
  for j in range(N):
    if A3[i] == b[j]:
      A3[i] = 0
ans = 'No'
##横ラインビンゴ確認
if sum(A1) == 0 or sum(A2) == 0 or sum(A3) == 0:
  ans = 'Yes'
#縦ラインビンゴ確認
elif (A1[0] == 0 and A2[0] == 0 and A3[0] == 0) or (A1[1] == 0 and A2[1] == 0 and A3[1] == 0) or (A1[2] == 0 and A2[2] == 0 and A3[2] == 0):
  ans = 'Yes'
#斜めビンゴ確認
elif (A1[0] == 0 and A2[1] == 0 and A3[2] == 0) or (A1[2] == 0 and A2[1] == 0 and A3[0] == 0):
  ans = 'Yes'
#結果
print(ans)

Submission status: Accepted

Solution code:
a = list(map(int,input().split()))
b = list(map(int,input().split()))
c = list(map(int,input().split()))
n = int(input())
l = [0]*n
for i in range(n):
    l[i] = int(input())
    for j in range(3):
        if l[i] == a[j]:
            a[j] = 0
        elif l[i] == b[j]:
            b[j] = 0
        elif l[i] == c[j]:
            c[j] = 0
ans = 'No'
if a[0]+a[1]+a[2] == 0 or b[0]+b[1]+b[2] == 0 or c[0]+c[1]+c[2] == 0:
    ans = 'Yes'
if a[0]+b[0]+c[0] == 0 or a[1]+b[1]+c[1] == 0 or a[2]+b[2]+c[2] == 0:
    ans = 'Yes'
if a[0]+b[1]+c[2] == 0 or a[2]+b[1]+c[0] == 0:
    ans = 'Yes'
print(ans)

Submission status: Accepted

Solution code:
A = [ [] for i in range (3)]
for i in range(3) :
    A[i] = input().split()

fl = False 

B = [[False for i in range (3)] for i in range(3)]

N = int(input())
for b in range (N) :
    tmp = input()
    for i in range (3) :
        for j in range (3) :
            if int(tmp) == int(A[i][j]) :
                B[i][j] = True

if B[0][0] and B[1][1] and B[2][2] :
    fl = True
elif B[0][2] and B[1][1] and B[2][0] :
    fl = True
elif B[0][0] and B[0][1] and B[0][2] :
    fl = True
elif B[1][0] and B[1][1] and B[1][2] :
    fl = True
elif B[2][0] and B[2][1] and B[2][2] :
    fl = True
elif B[0][0] and B[1][0] and B[2][0] :
    fl = True
elif B[0][1] and B[1][1] and B[2][1] :
    fl = True
elif B[0][2] and B[1][2] and B[2][2] :
    fl = True

print ('Yes' if fl else 'No')

Submission status: Accepted

Solution code:
a = []
use = [[False for i in range (3)] for j in range (3)]
ha = {}
cntRow = [0 for i in range (3)]
cntCol = [0 for i in range (3)]

for i in range (3) :
    a.append (list (map (int, input ().split ())))
    for j in range (3) :
        ha[a[i][j]] = (i, j)

n = int (input ())

for i in range (n) :
    b = int (input ())
    if (not b in ha.keys ()) :
        continue
    if (not use[ha[b][0]][ha[b][1]]) :
        use[ha[b][0]][ha[b][1]] = True
        cntRow[ha[b][0]] += 1
        cntCol[ha[b][1]] += 1

flg = False
for i in range (3) :
    if (cntCol[i] == 3 or cntRow[i] == 3) :
        flg = True

if (not flg) :
    if (use[1][1] and (use[0][0] and use[2][2] or use[0][2] and use[2][0])) :
        flg = True

print ("Yes" if flg else "No")

Submission status: Accepted

Solution code:
def resolve():
    a11,a12,a13=map(int, input().split())
    a21,a22,a23=map(int, input().split())
    a31,a32,a33=map(int, input().split())
    n=int(input())
    lyo1=[a11,a12,a13]
    lyo2=[a21,a22,a23]
    lyo3=[a31,a32,a33]
    lta1=[a11,a21,a31]
    lta2=[a12,a22,a32]
    lta3=[a13,a23,a33]
    lna1=[a11,a22,a33]
    lna2=[a13,a22,a31]
    yo1=0
    yo2=0
    yo3=0
    ta1=0
    ta2=0
    ta3=0
    na1=0
    na2=0
    b=[int(input()) for i in range(n)]
    for x in range(n):
        if b[x] in lyo1:
            yo1+=1
        if b[x] in lyo2:
            yo2+=1
        if b[x] in lyo3:
            yo3+=1
        if b [x] in lta1:
            ta1+=1
        if b[x] in lta2:
            ta2+=1
        if b[x] in lta3:
            ta3+=1
        if b[x] in lna1:
            na1+=1
        if b[x] in lna2:
            na2+=1

    if yo1==3 or yo2==3 or yo3==3 or ta1==3 or ta2==3 or ta3==3 or na1==3 or na2==3:
        print('Yes')
    else:
        print('No')
resolve()

Submission status: Accepted

Solution code:
def solve():
    A = [list(map(int, input().split())) for i in range(3)]
    N = int(input())
    b = [int(input()) for i in range(N)]

    for i in range(3):
        if (A[i][0] in b and A[i][1] in b and A[i][2] in b) or (A[0][i] in b and A[1][i] in b and A[2][i] in b):
            print('Yes')
            return
    if (A[0][0] in b and A[1][1] in b and A[2][2] in b) or (A[2][0] in b and A[1][1] in b and A[0][2] in b):
        print('Yes')
        return
    print('No')

solve()

Submission status: Accepted

Solution code:
ls1 = list(map(int, input().split()))
ls2 = list(map(int, input().split()))
ls3 = list(map(int, input().split()))
n = int(input())

for i in range(n):
    b = int(input())
    if b in ls1:
        x = ls1.index(b)
        ls1[x] = 0
    if b in ls2:
        x = ls2.index(b)
        ls2[x] = 0
    if b in ls3:
        x = ls3.index(b)
        ls3[x] = 0

if ls1[0] + ls2[0] + ls3[0] == 0 or \
    ls1[1] + ls2[1] + ls3[1] == 0 or \
    ls1[2] + ls2[2] + ls3[2] == 0 or \
    ls1[0] + ls1[1] + ls1[2] == 0 or \
    ls2[0] + ls2[1] + ls2[2] == 0 or \
    ls3[0] + ls3[1] + ls3[2] == 0 or \
    ls1[0] + ls2[1] + ls3[2] == 0 or \
    ls3[0] + ls2[1] + ls1[2] == 0:
    print("Yes")
else:
    print("No")

Submission status: Accepted

Solution code:
a = [list(map(int, input().split())) for row in range(3)]
n = int(input())
b = [int(input()) for hoge in range(n)]
a1 = a[0] + a[1] + a[2]
c = []
for poge in a1:
  if poge in b:
    c.append(0)
  else:
    c.append(1)
if min((c[0]+c[1]+c[2]),(c[3]+c[4]+c[5]),(c[6]+c[7]+c[8]),(c[0]+c[3]+c[6]),
      (c[1]+c[4]+c[7]),(c[2]+c[5]+c[8]),(c[0]+c[4]+c[8]),(c[2]+c[4]+c[6])) == 0:
  print('Yes')
else:
  print('No')

Submission status: Accepted

Solution code:
a = [list(map(int,input().split())) for i in range(3)]
N = int(input())
b = [int(input()) for i in range(N)]

for i in range(3):
    for j in range(3):
        for k in range(N):
            if a[i][j]==b[k]:
                a[i][j]=0

ans = "No"

for i in range(3):
    if a[i][0]+a[i][1]+a[i][2]==0:
        ans = "Yes"
    if a[0][i]+a[1][i]+a[2][i]==0:
        ans = "Yes"

if a[0][0]+a[1][1]+a[2][2]==0 or a[0][2]+a[1][1]+a[2][0]==0:
    ans = "Yes"

print(ans)

Submission status: Accepted

Solution code:
import sys
input = sys.stdin.readline

def readlines(n):
    for i in range(n):
        for j, x in enumerate(input().split()):
            yield int(x), (i, j)

def bingo(card):
    if any(all(row) for row in card):
        return True
    
    if any(all(row[i] for row in card) for i in range(3)):
        return True
    
    if all(card[i][i] for i in range(3)):
        return True

    if all(card[2-i][i] for i in range(3)):
        return True

def main():
    A = dict(readlines(3))
    card = [[False]*3 for _ in range(3)]
    n = int(input())
    for _ in range(n):
        b = int(input())
        if b in A:
            y, x = A[b]
            card[y][x] = True
        if bingo(card):
            print("Yes")
            return
    
    print("No")


main()

Submission status: Accepted

Solution code:
a1 = list(map(int,input().split()))
a2 = list(map(int,input().split()))
a3 = list(map(int,input().split()))
n = int(input())
sheet = [
    [0,0,0],
    [0,0,0],
    [0,0,0],
]
for x in range(n):
    b = int(input())
    if b in a1:
        sheet[0][a1.index(b)] = 1
    elif b in a2:
        sheet[1][a2.index(b)] = 1
    elif b in a3:
        sheet[2][a3.index(b)] = 1
if (sum(sheet[0]) == 3 
    or sum(sheet[1]) == 3 
    or sum(sheet[2]) == 3
    or sheet[0][0] == sheet[1][0] == sheet[2][0] == 1
    or sheet[0][1] == sheet[1][1] == sheet[2][1] == 1
    or sheet[0][2] == sheet[1][2] == sheet[2][2] == 1
    or sheet[0][0] == sheet[1][1] == sheet[2][2] == 1
    or sheet[0][2] == sheet[1][1] == sheet[2][0] == 1):
    print('Yes')
else: print('No')

Submission status: Accepted

Solution code:
# inputを取得
A = []
for i in range(3):
  A.append(list(map(int, input().split())))
# A[0][0] A[0][1] A[0][2]
# A[1][0] A[1][1] A[1][2]
# A[2][0] A[2][1] A[2][2]

N = int(input())
b = []
for i in range(N):
  b.append(int(input()))

# bingoになる組み合わせを保持
C = []
C.append(A[0]) # 1行目
C.append(A[1]) # 2行目
C.append(A[2]) # 3行目
C.append([A[0][0], A[1][0], A[2][0]]) # 1列目
C.append([A[0][1], A[1][1], A[2][1]]) # 2列目
C.append([A[0][2], A[1][2], A[2][2]]) # 3列目
C.append([A[0][0], A[1][1], A[2][2]]) # 左上から斜め
C.append([A[0][2], A[1][1], A[2][0]]) # 右上から斜め

# bingoか判定
flag = False
for c in C:
  # c = [1, 2, 3]
  # b = [1, 2, 3, 4, 5, …]
  # 重複する要素が3だったらbingo
  if len(list(set(c) & set(b))) == 3:
    flag = True
    # 1個でもbingoならチェック終了
    break

# 結果をoutput
if flag:
  print("Yes")
else:
  print("No")

Submission status: Accepted

Solution code:
map_dict = dict()
for i in range(3):
    a1, a2, a3 = input().split()
    map_dict[a1] = 1 + i * 3
    map_dict[a2] = 2 + i * 3
    map_dict[a3] = 3 + i * 3

win_pattern = [
    (1, 2, 3),
    (4, 5, 6),
    (7, 8, 9),
    (1, 4, 7),
    (2, 5, 8),
    (3, 6, 9),
    (1, 5, 9),
    (3, 5, 7),
]
n = int(input())
scored = []
for i in range(n):
    b = input()
    try:
        scored.append(map_dict[b])
    except:
        pass
scored = set(scored)

flag = False
for pattern in win_pattern:
    if set(pattern).issubset(scored):
        print('Yes')
        flag = True
        break
if not flag:
    print('No')

Submission status: Accepted

Solution code:
A = []
for i in range(3):
  A.extend(list(map(int, input().split())))

N = int(input())
B = [int(input()) for i in range(N)]

for i in B:
  if i in A:
    A[A.index(i)] = 0

if A[0] == A[3] == A[6]:print("Yes")
elif A[1] == A[4] == A[7]:print("Yes")
elif A[2] == A[5] == A[8]:print("Yes")
elif A[0] == A[1] == A[2]:print("Yes")
elif A[3] == A[4] == A[5]:print("Yes")
elif A[6] == A[7] == A[8]:print("Yes")
elif A[0] == A[4] == A[8]:print("Yes")
elif A[2] == A[4] == A[6]:print("Yes")
else:print("No")

Submission status: Accepted

Solution code:
Flag = False
A = []
for i in range(3):
  A.extend(list(map(int, input().split())))

N = int(input())
B = [int(input()) for i in range(N)]

for i in B:
  if i in A:
    A[A.index(i)] = 0

for i in range(3):
  if A[i] + A[i+3] + A[i+6] == 0:
    Flag = True
  if A[3*i] + A[3*i+1] + A[3*i+2] == 0:
    Flag = True

if A[0] + A[4] + A[8] == 0 or A[2] + A[4] + A[6] == 0:
  Flag = True

if Flag:
  print("Yes")
else:
  print("No")

Submission status: Accepted

Solution code:
# ABC 157: B – Bingo
A = [input().split() for _ in range(3)]
N = int(input())
b = [input() for _ in range(N)]

for ball in b:
    for i in range(3):
        for j in range(3):
            if A[i][j] == ball:
                A[i][j] = '0'
                break

isBingo = 'No'

for i in range(3):
    if A[i][0] + A[i][1] + A[i][2] == '000':
        isBingo = 'Yes'
        break

for j in range(3):
    if A[0][j] + A[1][j] + A[2][j] == '000':
        isBingo = 'Yes'
        break

if A[0][0] + A[1][1] + A[2][2] == '000' or A[2][0] + A[1][1] + A[0][2] == '000':
    isBingo = 'Yes'

print(isBingo)

Submission status: Accepted

Solution code:
bingo = [list(map(int, input().split())) for _ in range(3)]
ls = [int(input()) for _ in range(int(input()))]

for i in range(3):
    for j in range(3):
        if bingo[i][j] in ls:
            bingo[i][j] = 1
        else:
            bingo[i][j] = 0

if sum(bingo[0]) == 3 or sum(bingo[1]) == 3 or sum(bingo[2]) == 3:
    print('Yes')
    exit()

if sum(bingo[i][0] for i in range(3)) == 3 or sum(bingo[i][1] for i in range(3)) == 3 or sum(bingo[i][2] for i in range(3)) == 3:
    print('Yes')
    exit()

if bingo[0][0] + bingo[1][1] + bingo[2][2] == 3 or bingo[0][2] + bingo[1][1] + bingo[2][0] == 3:
    print('Yes')
    exit()

print('No')

Submission status: Accepted

Solution code:
A = [list(map(int, input().split())) for _ in range(3)]
N = int(input())
for _ in range(N):
  b = int(input())
  for i in range(3):
    for j in range(3):
      if b == A[i][j]:
        A[i][j] = 101
result = "No"
for i in range(3):
  if A[i].count(101) == 3:
    result = "Yes"
  elif A[0][i] == 101 and A[1][i] == 101 and A[2][i] == 101:
    result = "Yes"
if (A[0][0] == 101 and A[1][1] == 101 and A[2][2] == 101) or (A[0][2] == 101 and A[1][1] == 101 and A[2][0] == 101):
    result = "Yes"
print(result)

Submission status: Accepted

Solution code:
import itertools
def checkbingo(A_match):
  for i in range(3):
      if 0 not in A_match[i * 3: (i + 1) * 3]:
          return 'Yes'
  for i in range(3):
      if 0 not in A_match[i: i + 7: 3]:
          return 'Yes'
  if 0 not in A_match[0: 8: 4]:
      return 'Yes'
  if 0 not in A_match[2: 7: 2]:
      return 'Yes'
  return 'No'  

def main():
  n=3
  A = [list(map(int, input().split())) for _ in range(n)]
  A=list(itertools.chain.from_iterable(A))
  N=int(input())
  b = [int(input()) for _ in range(N)]
  A_match = [0] * 9
  for i in range(n*n):
    tgtA=A[i]
    if(tgtA in b):
      A_match[i]=1
  print(checkbingo(A_match))
        
      
if __name__ == '__main__':
    main()

Submission status: Accepted

Solution code:
A = [list(map(int, input().split())) for _ in range(3)]
N = int(input())
B = [int(input()) for _ in range(N)]
mark = [[False, False, False] for _ in range(3)]

for i in range(3):
    for j in range(3):
        for b in B:
            if A[i][j] == b:
                mark[i][j] = True

ans = 'No'
# 縦の判定
for i in range(3):
    if mark[0][i] and mark[1][i] and mark[2][i]:
        ans = 'Yes'
        break

# 横の判定
for i in range(3):
    if mark[i][0] and mark[i][1] and mark[i][2]:
        ans = 'Yes'
        break

# 斜めの判定
if (mark[0][0] and mark[1][1] and mark[2][2]) or (mark[0][2] and mark[1][1] and mark[2][0]):
    ans = 'Yes'

print(ans)

Submission status: Accepted

Solution code:
A = []
for _ in range(3):
    a = list(map(int, input().split()))
    A.append(a)

N = int(input())
Bn = set([int(input()) for _ in range(N)])

for b in Bn:
    for i in range(3):
        for j in range(3):
            if A[i][j] == b:
                A[i][j] = 0

ans = False
if A[0][0] == A[1][1] == A[2][2] == 0:
    ans = True

if A[0][2] == A[1][1] == A[2][0] == 0:
    ans = True

# col
for i in range(3):
    cnt = 0
    for j in range(3):
        if A[j][i] == 0:
            cnt += 1
    if cnt == 3:
        ans = True

# row
for i in range(3):
    cnt = 0
    for j in range(3):
        if A[i][j] == 0:
            cnt += 1
    if cnt == 3:
        ans = True

print("Yes" if ans else "No")

Submission status: Accepted

Solution code:
a = [list(map(int, input().split())) for i in range(3)]
n = int(input())
b = [int(input()) for i in range(n)]
for i in range(3):
  for j in range(3):
    for k in b:
      if a[j][i] == k:
            a[j][i] = 'o'
a1 = list(set(a[0]))
a2 = list(set(a[1]))
a3 = list(set(a[2]))
a4 = list(set((a[0][0],a[1][1],a[2][2])))
a5 = list(set((a[0][2],a[1][1],a[2][0])))
a6 = list(set((a[0][0],a[1][0],a[2][0])))
a7 = list(set((a[0][1],a[1][1],a[2][1])))
a8 = list(set((a[0][2],a[1][2],a[2][2])))
p = ['o']
A = [a1,a2,a3,a4,a5,a6,a7,a8]
for i in A:
    ans = 'No'
    if i == p:
        ans = 'Yes'
        break
print(ans)

Submission status: Accepted

Solution code:
A = [list(map(int, input().split())) for i in range(3)]
N = int(input())
B = [int(input()) for i in range(N)]
for i in range(3):
  for j in range(3):
    for k in(B):
      if A[j][i] == k:
        A[j][i] = 1
        break
      elif k == B[-1]:
        A[j][i] = 0
if sum(A[0]) == 3 or sum(A[1]) == 3 or sum(A[2]) == 3:
  print('Yes')
elif sum([row[0] for row in A]) == 3 or sum([row[1] for row in A]) == 3 or sum([row[2] for row in A]) == 3:
  print('Yes')
elif A[0][0] + A[1][1] + A[2][2] == 3 or A[2][0] + A[1][1] + A[0][2] == 3:
  print('Yes')
else:
  print('No')

Submission status: Accepted

Solution code:
a= []
for i in range(3):
  a_input = input().split()
  a.append(a_input)

n = int(input())
for i in range(n):
  x = input()
  for j in range(3):
    for k in range(3):
      if x == a[j][k]:
        a[j][k] = "0"

for i in range(3):
    if a[0][i] == "0" and a[0][i] == a[1][i] and a[0][i] == a[2][i]:
      print("Yes")
      exit()
    elif a[i][0] == "0" and a[i][0] == a[i][1] and a[i][0] == a[i][2]:
      print("Yes")
      exit()
    elif a[0][0] == "0" and a[0][0] == a[1][1] and a[1][1] == a[2][2]:
      print("Yes")
      exit()
    elif a[0][2] == "0" and a[0][2] == a[1][1] and a[0][2] == a[2][0]:
      print("Yes")
      exit()
print("No")

Submission status: Accepted

Solution code:
import numpy as np
a = np.array([[int(i) for i in input().split()] for _ in range(3)])
n = int(input())
b = [int(input()) for _ in range(n)]
for i in b:
    a[np.where(i == a)] = 0

if a[0,0] + a[1,1] + a[2,2] == 0 or a[0,2] + a[1,1] + a[2,0] == 0:
    print('Yes')
elif 0 in np.sum(a, axis=0) or 0 in np.sum(a, axis=1):
    print('Yes')
else:
    print('No')

Submission status: Accepted

Solution code:
A = [list(map(int,input().split())) for i in range(3)]
n = int(input())
B = [int(input()) for _ in range(n)]

for i in range(3):
    for j in range(3):
        for k in range(n):
            if A[i][j] == B[k]:
                A[i][j] = 0

cnt = 0
for i in range(3):
    S = 0
    for j in range(3):
        S += A[i][j]
    if S == 0:
        cnt = 1

for j in range(3):
    S = 0
    for i in range(3):
        S += A[i][j]
    if S == 0:
        cnt = 1

S = A[0][0] + A[1][1] + A[2][2]
if S == 0:
    cnt = 1

S = A[0][2] + A[1][1] + A[2][0]
if S == 0:
    cnt = 1

if cnt == 1:
    print("Yes")
else:
    print("No")

Submission status: Accepted

Solution code:
a,b,c=map(int,input().split())
d,e,f=map(int,input().split())
g,h,i=map(int,input().split())
n=int(input())
B=[int(input()) for j in  range(n)]
 
if (a in B and b in B  and c in B) or (d in B and e in B  and f in B) or (g in B and h in B and i in B) or (a in B and d in B and g in B) or (b in B and e in B and h in B) or (c in B and f in B and i in B) or (a in B and e in B and i in B) or (c in B and e in B and g in B):
    print("Yes")
else:
    print("No")

Submission status: Accepted

Solution code:
A = [list(map(int, input().split())) for i in range(3)]
N = int(input())

for count in range(N):
    b = int(input())

    for i in range(3):
        for j in range(3):
            if A[i][j] == b:
                A[i][j] = -1

ans = 'No'
for i in range(3):
    if A[i][0] == A[i][1] == A[i][2] == -1:
        ans = 'Yes'
    if A[0][i] == A[1][i] == A[2][i] == -1:
        ans = 'Yes'
if A[0][0] == A[1][1] == A[2][2] == -1:
    ans = 'Yes'
if A[2][0] == A[1][1] == A[0][2] == -1:
    ans = 'Yes'

print(ans)

Submission status: Accepted

Solution code:
a1=list(map(int,input().split()))
a2=list(map(int,input().split()))
a3=list(map(int,input().split()))
a=[a1,a2,a3]
n=int(input())
bingo=[[0 for i in range(3)] for j in range(3)]
for k in range(n):
    x=int(input())
    for j in range(3):
        for i in range(3):
            if x==a[j][i]:
                bingo[j][i]+=1
for j in range(3):
    if sum(bingo[j])==3:
        print("Yes")
        exit()
for i in range(3):
    if bingo[0][i]+bingo[1][i]+bingo[2][i]==3:
        print("Yes")
        exit()
if bingo[0][0]+bingo[1][1]+bingo[2][2]==3 or bingo[0][2]+bingo[1][1]+bingo[2][0]==3:
    print("Yes")
    exit()
print("No")

Submission status: Accepted

Solution code:
a_list = []
for i in range(3):
    for j in list(map(int, input().split())):
        a_list.append(j)

N = int(input())

b_list = []
for i in range(N):
    b_list.append(int(input()))    
        
for b in b_list:
    if b in a_list:
        a_list[a_list.index(b)] = 0
# 123
# 456
# 789
# とした場合のビンゴラインごとのリスト
line_list = [
    a_list[:3],    # 123
    a_list[3:6],   # 456
    a_list[6:9],   # 789
    a_list[::3],   # 147
    a_list[1::3],  # 258
    a_list[2::3],  # 369
    a_list[::4],   # 159
    a_list[2:7:2], # 357    
]
line_sum_list = list(map(sum, line_list))
if 0 in line_sum_list:
    print('Yes')
else:
    print('No')

Submission status: Accepted

Solution code:
x = []
b = []
for i in range(3):
    s = list(map(int,input().split()))
    x.append(s)
N = int(input())
for j in range(N):
    b.append(int(input()))
temp =0
for j in range(3):
    if x[0][j] in b and x[1][j] in b and x[2][j] in b:
        temp = 1
        break
for j in range(3):
    if x[j][0] in b and x[j][1] in b and x[j][2] in b:
        temp = 1
        break
if x[0][0] in b and x[1][1] in b and x[2][2] in b:
    temp = 1
elif x[0][2] in b and x[1][1] in b and x[2][0] in b:
    temp = 1
if temp ==1:
    print("Yes")
else:print("No")

Submission status: Accepted

Solution code:
import numpy as np
one = [int(x) for x in input().split()]
two = [int(x) for x in input().split()]
three = [int(x) for x in input().split()]
l = [one, two, three]
card = np.array(l)
N = int(input())


for n in list(range(N)):
    try:
        b = int(input())
        card = np.where(card == b, 0, card)
    except EOFError:
        break
#print(card)

if card[0, 0] == card[0,1] == card[0,2] or\
card[1,0]==card[1,1]==card[1,2] or \
card[2, 0] == card[2, 1] == card[2, 2] or \
card[0, 0] == card[1, 0] == card[2, 0] or \
card[0, 1] == card[1, 1] == card[2, 1] or \
card[0, 2] == card[1, 2] == card[2, 2] or \
card[0, 0] == card[1, 1] == card[2, 2] or \
card[0, 2] == card[1, 1] == card[2, 0] :
    print('Yes')
else:
    print('No')

Submission status: Accepted

Solution code:
import sys
a = [input().split() for l in range(3)]
n = int(input())
b = [int(input())for i in range(n)]

for i in range(3):
    for j in range(3):
        if int(a[j][i]) in b :
            a[j][i]=0



i = 0
for i in range(3):
    if (a[i][0]==a[i][1]==a[i][2]) | (a[0][i]==a[1][i]==a[2][i]):
        print("Yes")
        sys.exit()
if (a[0][0]==a[1][1]==a[2][2]) | (a[0][2]==a[1][1]==a[2][0]):
    print("Yes")
    sys.exit()
else:
    print("No")

Submission status: Accepted

Solution code:
bingo_length = 3

grid = []
for i in range(bingo_length):
    array = list(map(int, input().strip().split()))
    grid.append(array)
    
N = int(input())
b = []
for i in range(N):
  b.append(int(input()))

flag = False
for i in range(bingo_length):
  if grid[i][0] in b and grid[i][1] in b and grid[i][2] in b:
    flag = True
    break
for i in range(bingo_length):
  if grid[0][i] in b and grid[1][i] in b and grid[2][i] in b:
    flag = True
    break
if grid[0][0] in b and grid[1][1] in b and grid[2][2] in b:
  flag = True
if grid[0][2] in b and grid[1][1] in b and grid[2][0] in b:
  flag = True
if flag == True:
  print('Yes')
else:
  print('No')

Submission status: Accepted

Solution code:
A = []
for _ in range(3):
    A.append([int(i) for i in input().split(' ')])
N = int(input())
a = []
for _ in range(N):
    a.append(int(input()))

for num in a:
    for i in range(3):
        for j in range(3):
            if num == A[i][j]:
                A[i][j] = '*'

ans = 'No'
for i in range(3):
    flg = 0 
    b1 = all(A[i][j] == '*' for j in range(3))
    b2 = all(A[j][i] == '*' for j in range(3))
    b3 = all(A[j][j] == '*' for j in range(3))
    b4 = all(A[2-j][j] == '*' for j in range(3))
    if b1 or b2 or b3 or b4:
        ans = 'Yes'

print(ans)

Submission status: Accepted

Solution code:
A = [list(map(int, input().split())) for _ in range(3)]
N = int(input())
B = [int(input()) for _ in range(N)]

key = []
for i, v in enumerate(A):
    for k, j in enumerate(v):
        if (j in B):
            key.append([i, k])

ans = [[[0, 0], [1, 0], [2, 0]], [[0, 1], [1, 1], [2, 1]], [[0, 2], [1, 2], [2, 2]], [[0, 0], [1, 1], [2, 2]], [
    [0, 2], [1, 1], [2, 0]], [[0, 0], [0, 1], [0, 2]], [[1, 0], [1, 1], [1, 2]], [[2, 0], [2, 1], [2, 2]]]

for i in ans:
    count = 0
    for j in i:
        if (j in key):
            count += 1
    if (count == 3):
        print('Yes')
        exit()

print('No')

Submission status: Accepted

Solution code:
f = lambda:list(map(int,input().split()))
l = f() + f() + f()
n = int(input())
s = set()

for i in range(n):
    b = int(input())
    if b in l: s|={l.index(b)}

print(['No','Yes'][any(t<=s for t in [{0,1,2},{0,3,6},{0,4,8},{1,4,7},
                                      {2,4,6},{2,5,8},{3,4,5},{6,7,8}])])

Submission status: Accepted

Solution code:
A = [list(map(int,input().split())) for i in range(3)]
N = int(input())
B = [int(input()) for i in range(N)]

for i in range(3):
	for j in range(3):
		for k in range(N):
			if A[i][j] == B[k]:
				A[i][j] = 0

cnt = 0
for i in range(3):
	S = 0
	for j in range(3):
		S += A[i][j]
	if S == 0:
		cnt = 1
		
for j in range(3):
	S = 0
	for i in range(3):
		S += A[i][j]
	if S == 0:
		cnt = 1
		
S = A[0][0] + A[1][1] + A[2][2]
if S == 0:
	cnt = 1
	
S = A[0][2] + A[1][1] + A[2][0]
if S == 0:
	cnt = 1
	
if cnt == 1:
	print("Yes")
else:
	print("No")

Submission status: Accepted

Solution code:
a = [list(map(int,input().split())) for i in range(3)]
n = int(input())
b = [int(input()) for i in range(n)]

for i in range(3):
    for j in range(3):
        for k in range(n):
            if a[i][j] == b[k]:
                a[i][j] = 0

ans = "No"
for i in range(3):
    if a[i][0] + a[i][1] + a[i][2] == 0:
        print("Yes")
        exit()

    if a[0][i] + a[1][i] + a[2][i] == 0:
        print("Yes")
        exit()

if a[0][0] + a[1][1] + a[2][2] == 0:
    print("Yes")
    exit()
if a[2][0] + a[1][1] + a[0][2] == 0:
    print("Yes")
    exit()

print(ans)

Submission status: Accepted

Solution code:
a=[list(map(int,input().split())) for _ in range(3)]
n=int(input())
b=list(int(input()) for _ in range(n))

for i in range(3):
    for j in range(3):
        for k in range(n):
            if a[i][j]==b[k]:
                a[i][j]=0
                
for i in range(3):
    if a[i][0]+a[i][1]+a[i][2]==0 or a[0][i]+a[1][i]+a[2][i]==0:
        print('Yes')
        exit()
if a[0][0]+a[1][1]+a[2][2]==0 or a[0][2]+a[1][1]+a[2][0]==0:
    print('Yes')
else:
    print('No')

Submission status: Accepted

Solution code:
a=[]
for i in range(3):
    ai=list(map(int,input().split()))
    a.append(ai)
n=int(input())
b=[]
for i in range(n):
    b.append(int(input()))
    


for i in range(3):
    for j in range(3):
        for k in range(n):
            if a[i][j]==b[k]:
                a[i][j]='b'

flag=False
for i in range(3):
    if a[i][0]==a[i][1] and a[i][1]==a[i][2]:
        flag=True
    if a[0][i]==a[1][i] and a[1][i]==a[2][i]:
        flag=True
if a[0][0]==a[1][1] and a[1][1]==a[2][2]:
    flag=True
if a[0][2]==a[1][1] and a[1][1]==a[2][0]:
    flag=True

if flag:
    print('Yes')
else:
    print('No')

Submission status: Accepted

Solution code:
import numpy as np

A = [list(map(int,input().split())) for _ in range(3)]
N = int(input())
B = [int(input()) for _ in range(N)]

BINGO = np.array([[False for i in range(3)]for j in range(3)])

for i in range(3):
    for j in range(3):
        if A[i][j] in B:
            BINGO[i][j] = True

#横確認
for i in BINGO:
    if False not in i:
        print("Yes")
        exit()

BINGO = BINGO.T # 縦横を入れ替えTはnumpyの関数

#縦確認
for i in BINGO:
    if False not in i:
        print("Yes")
        exit()

#斜め確認
cross = [BINGO[i][i] for i in range(3)]
cross_re = [BINGO[i][2-i] for i in range(3)]

if False not in cross or False not in cross_re:
    print("Yes")
    exit()

print("No")

Submission status: Accepted

Solution code:
import numpy as np
tmps = []
for i in range(3):
    tmp = list(map(int, input().split(' ')))
    tmps.append(tmp)
bingo = np.array(tmps)
N = int(input())
for i in range(N):
    bingo = np.where(bingo==int(input()), -1, bingo)
c = 2
x1 = 0
x2 = 0
ret = []
for i in range(3):
    row = np.sum(bingo[i, :])
    col = np.sum(bingo[:, i])
    x1 += np.sum(bingo[i, i])
    x2 += np.sum(bingo[i, c-i])
    ret.append(row)
    ret.append(col)
ret.append(x1)
ret.append(x2)
if -3 in ret:
    print('Yes')
else:
    print('No')

Submission status: Accepted

Solution code:
A = [list(map(int, input().split())) for i in range(3)]
B = [[0]*3 for i in range(3)]
n = int(input())
for k in range(n):
    b = int(input())
    for i in range(3):
        for j in range(3):
            if A[i][j] == b:
                B[i][j] = 1
if any([all([B[i][j] == 1 for j in range(3)]) for i in range(3)]):
    print('Yes')
    exit()
if any([all([B[i][j] == 1 for i in range(3)]) for j in range(3)]):
    print('Yes')
    exit()
if B[0][0]*B[1][1]*B[2][2] == 1:
    print('Yes')
    exit()
if B[0][2]*B[1][1]*B[2][0] == 1:
    print('Yes')
    exit()
print('No')

Submission status: Accepted

Solution code:
a,b,c=map(int,input().split())
d,e,f=map(int,input().split())
g,h,i=map(int,input().split())
N=int(input())
mylist=[]
for x in range(N):
  j=int(input())
  mylist.append(j)
if a in mylist and b in mylist and c in mylist:
  print('Yes')
elif a in mylist and b in mylist and c in mylist:
  print('Yes')
elif a in mylist and e in mylist and i in mylist:
  print('Yes')
elif a in mylist and d in mylist and g in mylist:
  print('Yes')
elif d in mylist and e in mylist and f in mylist:
  print('Yes')
elif g in mylist and h in mylist and i in mylist:
  print('Yes')
elif c in mylist and e in mylist and g in mylist:
  print('Yes')
elif b in mylist and e in mylist and h in mylist:
  print('Yes')
elif c in mylist and f in mylist and i in mylist:
  print('Yes')
else:
  print('No')

Submission status: Accepted

Solution code:
import numpy as np

A=[]
for i in range(0,3):
    input_1= list(map(int, input().split()))
    A.extend(input_1)
    
N=int(input())

Bingo=[]
for i in range(0,N):
    Bingo.append(int(input()))

for i in range(0,9):
    for j in range(0,N):
        if Bingo[j]==A[i]:
            A[i]=0
    
np_arr1 = np.array([[A[0], A[1], A[2]], [A[3], A[4], A[5]], [A[6], A[7], A[8]]])
#print(np_arr1)

list_horizontal_1=sum([A[0], A[1], A[2]])
list_horizontal_2=sum([A[3], A[4], A[5]])
list_horizontal_3=sum([A[6], A[7], A[8]])

list_vertical_1=sum([A[0], A[3], A[6]])
list_vertical_2=sum([A[1], A[4], A[7]])
list_vertical_3=sum([A[2], A[5], A[8]])

list_closs_1=sum([A[0], A[4], A[8]])
list_closs_2=sum([A[2], A[4], A[6]])

if list_horizontal_1==0 or list_horizontal_2==0 or list_horizontal_3==0 or list_vertical_1==0 or list_vertical_2==0 or list_vertical_3==0 or list_closs_1==0 or list_closs_2==0:
    print('Yes')
else:
    print('No')