代码展示:
N = eval(input())
statements = [None]
for i in range(N):
statements.append(input())
# print("N =",N)
# print('statements =',statements)
def check(wolf_1,wolf_2):
is_wolvs = ['+'] * (N+1)
is_wolvs[wolf_1],is_wolvs[wolf_2] = '-', '-'
num_wolvs_liers = \
count_single_lier(wolf_1,is_wolvs) + count_single_lier(wolf_2,is_wolvs)
num_total_liers = count_total_liers(is_wolvs)
if num_wolvs_liers == 1 and num_total_liers == 2:
return True
else:
return False
def count_single_lier(person,is_wolvs):
person_state = statements[person]
if is_wolvs[int(person_state[1:])]!=person_state[0]:
return 1
else:
return 0
def count_total_liers(is_wolvs):
total = 0
for i in range(1,N+1):
total += count_single_lier(i,is_wolvs)
return total
def main():
for i in range(1,N):
for j in range(i+1,N+1):
wolf_a, wolf_b = i, j
if check(wolf_a,wolf_b):
print(wolf_a,wolf_b)
return
print('No Solution')
if __name__ == '__main__':
main()
测评结果: