#54289: 不一定夠好,但一定夠簡單的解題思路


woominytr (梧銘)


第一行的資料中,先專注於前兩個,找出與上面題目對應的關係,並且假設前三者均為False(未對應)。

and=[[1,1]]
or=[[1,0],[0,1],[1,1]]
xor=[[1,0],[0,1]]
 
前三行只是方便理解,接下來用if、else把有對應到的變成True。
 
iut=list(map(int,str(input()).split()))
 
af=False
of=False
xf=False
 
if iut[0]==0:
    if iut[1]!=0:
        of = True
        xf = True
else:
    if iut[1]==0:
        of = True
        xf = True
    else:
        af = True
        of = True
 
以上,就找到了對應的邏輯運算子,此時如果第三項的資料是0,就剛好與答案完全相反,因此:
 
if iut[2]==0:
    af = not af
    of = not of
    xf = not xf
 
最後,如果三者均為False,則只需輸出IMPOSSIBLE,否則一個個if找是否輸出。