亞歷山大將軍準備派遣一支精銳部隊前往攻打鄰國,他麾下有三個種族 – 「人類」、
「骷髏族」和「哥布林族」;每個種族各有不同兵種,例如人類有騎士、法師、弓箭手,而
哥布林族有勇士、投矛手、吹箭手等等。
為了平衡部隊的組成份子,亞歷山大會從三個種族各選擇一個兵種。此外,他還會考慮
這個部隊是否能涵蓋「對空攻擊」、「範圍攻擊」和「遠距攻擊」三種特性。舉例來說,亞歷山大將軍麾下的三個種族各有三個兵種如下:
亞歷山大可以選擇法師、骷髏兵團和勇士這個組合,因為這個組合涵蓋了三個種族和三個特
性;但他不能選擇弓箭手、骷髏兵團和投矛手這個組合,因為這個組合未能涵蓋「範圍攻
擊」這個特性;他也不能選擇弓箭手、炸彈兵和炸彈塔這個組合,因為這個組合未能涵蓋
「哥布林」這個種族。
亞歷山大為這個問題想了很多天,國王感到很不解,這麼簡單的事情怎麼想那麼久。亞
歷山大為了向國王解釋,他想要告訴國王總共有多少種可能的組合,請你幫幫他。
輸入格式
第一列為一個正整數 N (1 N 10000),代表亞歷山大麾下有多少種兵種。接下來的 N
列,每一列有四個正整數 ci (ci {1, 2, 3})、ai、ri 和 di (ai, ri, di {0, 1}),彼此間以一個空
白隔開,分別代表種族、對空攻擊、範圍攻擊和遠距攻擊。ai、ri 和 di 的值若為 1,代表
具有該特性;否則,不具有該特性。
輸出格式
輸出共有多少個兵種組合可以涵蓋三個種族和三個特性。
Python Code:
n=int(input()) # 輸入兵種
x,y=[],[]
for i in range(n): # 輸入兵種、對空攻擊、範圍攻擊、遠距攻擊
data=input().split(' ')
x.append(data)
for i in range(n): # 將輸入的字串轉成數字
x[i]=[int(p) for p in x[i]]
flag=0 # 合乎條件的組合加1
for i in range(n):
if x[i][0]==1:
for j in range(n):
if x[j][0]==2:
for k in range(n):
if x[k][0]==3:
if (x[i][1]+x[j][1]+x[k][1])>=1 and \
(x[i][2]+x[j][2]+x[k][2])>=1 and \
(x[i][3]+x[j][3]+x[k][3])>=1:
flag+=1
print(flag)