首页 > 试题广场 >

不想出差的HR

[编程题]不想出差的HR
  • 热度指数:1905 时间限制:C/C++ 1秒,其他语言2秒 空间限制:C/C++ 32M,其他语言64M
  • 算法知识视频讲解
按照卡中心校园招聘的要求,HR小招和小商需要从三个科室中(分别为A、B、C)抽派面试官去往不同城市。
两名HR按照以下规定轮流从任一科室选择面试官:每次至少选择一位,至多选择该科室剩余面试官数。最先选不到面试官的HR需要自己出差。
假设HR小招和小商都不想出差且每次选择都采取最优策略,如果是小招先选,写一个函数来判断她是否需要出差。如果不需要出差,请给出第一步的最优策略。

输入描述:
输入为三个正整数,分别代表三个科室的面试官人数,用英文逗号分隔


输出描述:
若小招需要出差,则输出:1;
若小招不需要出差,则输出:第一步选择的科室名称和选择人数,用英文逗号分隔
示例1

输入

1,8,9

输出

1
示例2

输入

2,0,4

输出

C,2
异或为0则必输;则非必输的情况下,需保证取完之后剩下的均异或为0
a,b,c=[int(num) for num in input().split(',')]
if a^b^c==0:
    print(1)
    exit()
if a==1:
    print('A,{}'.format(1))
    exit()
if b==1:
    print ('B,{}'.format(1))
    exit()
if c==1:
    print ('C,{}'.format(1) )
    exit()
for i in range(1,a):
    if b^c^(a-i)==0:
        print ('A,{}'.format(i) )
        exit()
for i in range(1,b):
    if a^c^(b-i)==0:
        print ('B,{}'.format(i) )
        exit()
for i in range(1,c):
    if b^a^(c-i)==0:
        print ('C,{}'.format(i) )
        exit()
发表于 2020-10-11 14:06:46 回复(0)